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}" />