Bean não encontrado (Servlet + EJB + JBoss)

Pessoal,

Eu acho que abri o meu problema na seção errada no post anterior: http://www.guj.com.br/java/302958-erro-ao-acessar-servlet-ejb–jboss
O meu servidor está subindo corretamente, sem nenhum problema.
Porém ao acessar o meu Servlet e efetuar uma busca do meu Bean remoto, apresenta a seguinte erro:

21:37:51,154 ERROR [STDERR] javax.naming.NameNotFoundException: ClientesBean not bound 21:37:51,155 ERROR [STDERR] at org.jnp.server.NamingServer.getBinding(NamingServer.java:529) 21:37:51,155 ERROR [STDERR] at org.jnp.server.NamingServer.getBinding(NamingServer.java:537) 21:37:51,155 ERROR [STDERR] at org.jnp.server.NamingServer.getObject(NamingServer.java:543) 21:37:51,155 ERROR [STDERR] at org.jnp.server.NamingServer.lookup(NamingServer.java:267) 21:37:51,155 ERROR [STDERR] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:667) 21:37:51,155 ERROR [STDERR] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:627) 21:37:51,155 ERROR [STDERR] at javax.naming.InitialContext.lookup(Unknown Source) 21:37:51,155 ERROR [STDERR] at br.com.sankhya.teste.vc.ServletController.getClientesModel(ServletController.java:36) 21:37:51,155 ERROR [STDERR] at br.com.sankhya.teste.vc.ServletController.doPost(ServletController.java:26) 21:37:51,156 ERROR [STDERR] at br.com.sankhya.teste.vc.ServletController.doGet(ServletController.java:21) 21:37:51,156 ERROR [STDERR] at javax.servlet.http.HttpServlet.service(HttpServlet.java:734) 21:37:51,156 ERROR [STDERR] at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) 21:37:51,156 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 21:37:51,156 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 21:37:51,156 ERROR [STDERR] at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) 21:37:51,156 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 21:37:51,156 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 21:37:51,156 ERROR [STDERR] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) 21:37:51,156 ERROR [STDERR] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 21:37:51,156 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179) 21:37:51,156 ERROR [STDERR] at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84) 21:37:51,157 ERROR [STDERR] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 21:37:51,157 ERROR [STDERR] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 21:37:51,157 ERROR [STDERR] at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157) 21:37:51,157 ERROR [STDERR] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 21:37:51,157 ERROR [STDERR] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262) 21:37:51,157 ERROR [STDERR] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) 21:37:51,157 ERROR [STDERR] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) 21:37:51,157 ERROR [STDERR] at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446) 21:37:51,157 ERROR [STDERR] at java.lang.Thread.run(Unknown Source)

E meu ServletController.java

[code]
public class ServletController extends HttpServlet {

private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	doPost(request, response);
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	try{
		request.setAttribute("grettings", getClientesModel().sayHello());
		request.getRequestDispatcher("listaClientes.jsp").forward(request, response);
	}catch(Exception e){
		e.printStackTrace();
	}
}

private Clientes getClientesModel() throws Exception {
	InitialContext ctx = new InitialContext();
	
	return (Clientes) ctx.lookup("ClientesBean/remote");

}

}[/code]

O meu ClientesBean.class já está com @Stateless na classe e implementando a interface CLientes onde o mesmo define o acesso como @Remote

[quote=marlonmaxwel]Pessoal,

Eu acho que abri o meu problema na seção errada no post anterior: http://www.guj.com.br/java/302958-erro-ao-acessar-servlet-ejb–jboss
O meu servidor está subindo corretamente, sem nenhum problema.
Porém ao acessar o meu Servlet e efetuar uma busca do meu Bean remoto, apresenta a seguinte erro:

21:37:51,154 ERROR [STDERR] javax.naming.NameNotFoundException: ClientesBean not bound 21:37:51,155 ERROR [STDERR] at org.jnp.server.NamingServer.getBinding(NamingServer.java:529) 21:37:51,155 ERROR [STDERR] at org.jnp.server.NamingServer.getBinding(NamingServer.java:537) 21:37:51,155 ERROR [STDERR] at org.jnp.server.NamingServer.getObject(NamingServer.java:543) 21:37:51,155 ERROR [STDERR] at org.jnp.server.NamingServer.lookup(NamingServer.java:267) 21:37:51,155 ERROR [STDERR] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:667) 21:37:51,155 ERROR [STDERR] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:627) 21:37:51,155 ERROR [STDERR] at javax.naming.InitialContext.lookup(Unknown Source) 21:37:51,155 ERROR [STDERR] at br.com.sankhya.teste.vc.ServletController.getClientesModel(ServletController.java:36) 21:37:51,155 ERROR [STDERR] at br.com.sankhya.teste.vc.ServletController.doPost(ServletController.java:26) 21:37:51,156 ERROR [STDERR] at br.com.sankhya.teste.vc.ServletController.doGet(ServletController.java:21) 21:37:51,156 ERROR [STDERR] at javax.servlet.http.HttpServlet.service(HttpServlet.java:734) 21:37:51,156 ERROR [STDERR] at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) 21:37:51,156 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 21:37:51,156 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 21:37:51,156 ERROR [STDERR] at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) 21:37:51,156 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 21:37:51,156 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 21:37:51,156 ERROR [STDERR] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) 21:37:51,156 ERROR [STDERR] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 21:37:51,156 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179) 21:37:51,156 ERROR [STDERR] at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84) 21:37:51,157 ERROR [STDERR] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 21:37:51,157 ERROR [STDERR] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 21:37:51,157 ERROR [STDERR] at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157) 21:37:51,157 ERROR [STDERR] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 21:37:51,157 ERROR [STDERR] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262) 21:37:51,157 ERROR [STDERR] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) 21:37:51,157 ERROR [STDERR] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) 21:37:51,157 ERROR [STDERR] at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446) 21:37:51,157 ERROR [STDERR] at java.lang.Thread.run(Unknown Source)

E meu ServletController.java

[code]
public class ServletController extends HttpServlet {

private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	doPost(request, response);
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	try{
		request.setAttribute("grettings", getClientesModel().sayHello());
		request.getRequestDispatcher("listaClientes.jsp").forward(request, response);
	}catch(Exception e){
		e.printStackTrace();
	}
}

private Clientes getClientesModel() throws Exception {
	InitialContext ctx = new InitialContext();
	
	return (Clientes) ctx.lookup("ClientesBean/remote");

}

}[/code]

O meu ClientesBean.class já está com @Stateless na classe e implementando a interface CLientes onde o mesmo define o acesso como @Remote[/quote]

Consegui resolver o problema.
Visualizei em um fórum americano uma possível solução e naveguei até a documentação do EJB3 no JBoss: http://docs.jboss.org/ejb3/app-server/tutorial/ear/ear.html

Eu estava fazendo o lookup da seguinte forma:

InitialContext ctx = new InitialContext(); return (Clientes) ctx.lookup("ClientesBean/remote");

Porém de acordo com a documentação, deve ser dessa forma:

InitialContext ctx = new InitialContext(); return (Clientes) ctx.lookup("ClientesEAR/ClientesBean/remote");

Padrão:
EARNAME/EJBNAME/local para interfaces Local e EARNAME/EJBNAME/remote para interfaces Remote