Erro javax.naming.NameNotFoundException

0 respostas
D

Alguem sabe como corrigir esse erro? Estou usando JSF 2.0, EJB 3.1, JBoss 7.0

14:57:44,133 ERROR [stderr] (http--127.0.0.1-8080-1) javax.naming.NameNotFoundException: UsuarioServiceImpl/remote -- service jboss.naming.context.java.UsuarioServiceImpl.remote

14:57:44,134 ERROR [stderr] (http--127.0.0.1-8080-1) 	at org.jboss.as.naming.ServiceBasedNamingStore.lookup(ServiceBasedNamingStore.java:87)

14:57:44,134 ERROR [stderr] (http--127.0.0.1-8080-1) 	at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:173)

14:57:44,134 ERROR [stderr] (http--127.0.0.1-8080-1) 	at org.jboss.as.naming.InitialContext.lookup(InitialContext.java:47)

14:57:44,134 ERROR [stderr] (http--127.0.0.1-8080-1) 	at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:209)

14:57:44,135 ERROR [stderr] (http--127.0.0.1-8080-1) 	at javax.naming.InitialContext.lookup(InitialContext.java:392)

14:57:44,135 ERROR [stderr] (http--127.0.0.1-8080-1) 	at br.com.projeto.bean.UsuarioBean.logar(UsuarioBean.java:65)

Lembrando que dentro da pasta WEB-INF tenho o arquivo jndi.properties com o seguinte conteudo

jndi.properties [projeto WEB]

java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.provider.url=jnp://localhost:1099
java.naming.factory.url.pkgs=org.jnp.interfaces

DAOGenericoImpl [projeto EJB]

@Stateless
public class DAOGenericoImpl<T, PK extends Serializable> implements
		DAOGenerico<T, PK> {

	@PersistenceContext(unitName = "jpa")
	protected EntityManager entityManager;
	
	........
	
}

UsuarioDAO [projeto EJB]

public interface UsuarioDAO {

	public Usuario logar(String login, String senha);

}

UsuarioDAOImpl [projeto EJB]

@Stateless
@Remote(UsuarioDAO.class)
public class UsuarioDAOImpl extends DAOGenericoImpl<Usuario, Serializable> implements UsuarioDAO {

	public Usuario logar(String login, String senha) {
		return (Usuario) entityManager
				.createNamedQuery("Usuario.listarPorLoginSenha")
				.setParameter("login", login).setParameter("senha", senha)
				.getSingleResult();
	}

}

UsuarioService [projeto EJB]

public interface UsuarioService {

	public Usuario logar(String login, String senha);

}

UsuarioServiceImpl [projeto EJB]

@Stateless
@Remote(UsuarioService.class)
public class UsuarioServiceImpl implements UsuarioService {

	@EJB
	private UsuarioDAO usuarioDAO;

	public Usuario logar(String login, String senha) {
		return usuarioDAO.logar(login, senha);
	}

}

UsuarioBean [projeto WEB]

@ManagedBean(name = "usuarioBean")
public class UsuarioBean implements Serializable {
	
	private static final String LOGIN = "/index.xhtml?faces-redirect=true";
	private Usuario usuario;
	
	public Usuario getUsuario() {
		if (usuario == null) {
			usuario = new Usuario();
		}
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}
	
	public String logar() {
		Context ctx = null;
		try {
			ctx = new  InitialContext();
		} catch (NamingException e1) {
			e1.printStackTrace();
		} 
		UsuarioService usuarioService = null;
		try {
			usuarioService = (UsuarioService) ctx.lookup("UsuarioServiceImpl/remote");
		} catch (NamingException e) {
			e.printStackTrace();
		}
		Usuario usuario = usuarioService.logar(getUsuario().getLogin(), getUsuario()
				.getSenha());
				
		return LOGIN;

	}
	
}

index.xhtml [projeto WEB]

<h:panelGrid id="loginPanelGrid" columns="2"
	columnClasses="textoDireita" cellpadding="3">

	<h:outputText value="Login:" styleClass="negrito" />
	<p:inputText id="login" value="#{usuarioBean.usuario.login}"
		required="true" size="30" maxlength="20"
		requiredMessage="Login obrigatório" />

	<h:outputText value="Senha:" styleClass="negrito" />
	<p:password id="senha" value="#{usuarioBean.usuario.senha}"
		feedback="false" required="true" size="30" maxlength="10"
		requiredMessage="Senha obrigatória" />

</h:panelGrid>

<br></br>

<p:commandButton value="Entrar"
	update="loginPanelGrid" action="#{usuarioBean.logar}" />
Criado 7 de março de 2012
Respostas 0
Participantes 1