Pessoal
to com problema com meu ManageBean usando JSF 2
Segue meu MB:
package br.com.vas.mb;
import java.io.Serializable;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import br.com.vas.entity.Parametro;
import br.com.vas.session.impl.ParametroBean;
@ManagedBean(name="paramBean")
@RequestScoped
public class ParametroController implements Serializable
{
private static final long serialVersionUID = 1L;
private Parametro parametro = new Parametro();
@EJB
private ParametroBean parametroBean;
public Parametro getParametro() {
System.out.println("Entrou no getParametro: "+ parametro);
return parametro;
}
public void setParametro(Parametro parametro) {
System.out.println("Entrou no setParametro: "+ parametro);
this.parametro = parametro;
}
public void adicionaParametro()
{
System.out.println("adicionar parametro");
parametroBean.adicionarParametro(parametro);
System.out.println("adicionado");
this.parametro = new Parametro();
}
}
segue meu EJB:
package br.com.vas.session.impl;
import java.util.List;
import javax.ejb.Remote;
import javax.ejb.Stateless;
import br.com.vas.dao.DAO;
import br.com.vas.entity.Parametro;
import br.com.vas.session.ParametroFacade;
@Remote(ParametroFacade.class)
@Stateless
public class ParametroBean implements ParametroFacade
{
@Override
public void adicionarParametro(Parametro parametro) {
System.out.println("Vamos add parametro");
DAO dao = new DAO();
dao.adiciona(parametro);
System.out.println("Parametro adicionado com sucesso");
}
@Override
public Parametro consultarParametro(long codigo) {
return null;//em.find(Parametro.class, codigo);
}
@Override
public List<Parametro> listarParametros() {
// TODO Auto-generated method stub
return null;
}
@Override
public void removerParametro(Parametro parametro) {
//em.remove(parametro);
}
}
Segue meu DAO:
package br.com.vas.dao;
import java.io.Serializable;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import br.com.vas.entity.Parametro;
public class DAO implements Serializable
{
private static final long serialVersionUID = 1L;
@PersistenceContext
private EntityManager em;
public void adiciona(Parametro t)
{
//persiste o objeto
em.persist(t);
}
public void remove(DAO t) {
em.remove(em.merge(t));
}
public void atualiza(DAO t) {
em.merge(t);
}
}
Segue minha view:
[code]<h:form id=“formCadastroParametro”>
<h:panelGrid columns="2" style="margin-bottom:10px">
<h:outputText value="Nome do Parametro:" />
<h:inputText value="#{paramBean.parametro.nomeParametro}" />
<h:outputText value="Valor do Parametro:" />
<h:inputText value="#{paramBean.parametro.valorParametro}" />
<p:commandButton value="Salvar" action="#{paramBean.adicionaParametro}" update="formCadastroParametro"></p:commandButton>
</h:panelGrid>
</h:form>[/code]
Agora olha o erro que dá:
09:32:43,520 ERROR [JBossInjectionProvider] Injection failed on managed bean.
javax.naming.NameNotFoundException: br.com.vas.mb.ParametroController not bound
at org.jnp.server.NamingServer.getBinding(NamingServer.java:529)
at org.jnp.server.NamingServer.getBinding(NamingServer.java:537)
at org.jnp.server.NamingServer.getObject(NamingServer.java:543)
at org.jnp.server.NamingServer.lookup(NamingServer.java:267)
at sun.reflect.GeneratedMethodAccessor107.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
at sun.rmi.transport.Transport$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
09:32:43,523 INFO [STDOUT] Entrou no getParametro: br.com.vas.entity.Parametro@1dd5c52
09:32:43,525 INFO [STDOUT] Entrou no getNomeParametro
09:32:43,526 INFO [STDOUT] Entrou no getParametro: br.com.vas.entity.Parametro@1dd5c52
09:32:50,593 ERROR [JBossInjectionProvider] Injection failed on managed bean.
javax.naming.NameNotFoundException: br.com.vas.mb.ParametroController not bound
at org.jnp.server.NamingServer.getBinding(NamingServer.java:529)
at org.jnp.server.NamingServer.getBinding(NamingServer.java:537)
at org.jnp.server.NamingServer.getObject(NamingServer.java:543)
at org.jnp.server.NamingServer.lookup(NamingServer.java:267)
at sun.reflect.GeneratedMethodAccessor107.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
at sun.rmi.transport.Transport$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Configurei o servlet corretamente do JSF no web.xml.
Reparei que ele entra no meu MB tanto é que ele imprimi “entrou no getParametro”. Mas não sei o que pode estar ocorrendo.
alguem sabe o que pode estar errado?