Olá pessoal.
Estou estudando a apostila da Caelum “Desenvolvimento avançado com JSF2 e EJB 3.1” onde no primeiro exercício da apostila me aconteceu o seguinte. Eis os códigos:
código da inteface Client
package br.com.soaressolutions.sessionbeans;
public interface Calculadora {
public Double soma(Double a, Double b);
}
codigo classe de implementação
package br.com.soaressolutions.sessionbeans;
package br.com.soaressolutions.sessionbeans;
import javax.ejb.Local;
import javax.ejb.Stateless;
@Stateless
@Local(Calculadora.class)
public class CalculadoraBean implements Calculadora {
@Override
public double soma(double a, double b) {
// TODO Auto-generated method stub
return a + b;
}
}
código managed bean
package br.com.soaressolutions.managedbean;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import br.com.soaressolutions.sessionbeans.Calculadora;
@ManagedBean(name="calculadoraMB")
public class CalculadoraMB {
@EJB
private Calculadora calculadora;
private double a;
private double b;
private double resultado;
public void soma() {
this.resultado = this.calculadora.soma(a, b);
}
public double getA() {
return a;
}
public void setA(double a) {
this.a = a;
}
public double getB() {
return b;
}
public void setB(double b) {
this.b = b;
}
public double getResultado() {
return resultado;
}
public Calculadora getCalculadora() {
return calculadora;
}
public void setCalculadora(Calculadora calculadora) {
this.calculadora = calculadora;
}
public void setResultado(double resultado) {
this.resultado = resultado;
}
}
jsf soma.xhtml
<!DOCTYPE html PUBLIC "-//W3C//DTD// XHTML 1.0 Transactional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transactional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>Calculadora - Soma</title>
</h:head>
<h:body>
<h:outputLabel value="Calculadora Web"></h:outputLabel>
<h:outputLabel value="Entre com o valor de A: " />
<h:inputText value="#{calculadoraMB.a}" />
<h:outputLabel value="Entre com o valor de B" />
<h:inputText value="#{calculadoraMB.b}" />
<h:commandButton value="Soma" action="#{calculadoraMB.soma()}" />
<h:outputLabel value="Resultado: " />
<h:outputText value="#{calculadoraMB.resultado}" />
</h:body>
</html>
Até ai tudo bem, é feito o deploy da aplicação no Glassfish, porém, quando mando executar o método soma() no managedbean o mesmo não é invocado para que seja mostrado o resultado. Alguém tem alguma idéia do que possa estar ocorrendo? Porque não consigo invocar o método?
Desde já agradeço a atenção de todos.
obrigado