Erro com lookup EJB 3

Estou criando um cliente web para um ejb mais ele ñ esta encontrando o nome na hora do lookup alguem saberia onde estou errando???

Erro:

19/06/2007 08:50:19 org.apache.catalina.core.ApplicationDispatcher invoke
SEVERE: Servlet.service() for servlet jsp threw exception
javax.faces.el.EvaluationException: Cannot get value for expression '#{Boleto.listarBoletos}'
	at org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:405)
	at javax.faces.component.UIData.getValue(UIData.java:1023)
	at javax.faces.component.UIData.createDataModel(UIData.java:789)
	at javax.faces.component.UIData.getDataModel(UIData.java:769)
	at javax.faces.component.UIData.getRowCount(UIData.java:194)
	at org.apache.myfaces.shared_impl.renderkit.html.HtmlTableRendererBase.encodeInnerHtml(HtmlTableRendererBase.java:221)
	at org.apache.myfaces.shared_impl.renderkit.html.HtmlTableRendererBase.encodeChildren(HtmlTableRendererBase.java:134)
	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:527)
	at javax.faces.webapp.UIComponentTag.encodeChildren(UIComponentTag.java:483)
	at javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:364)
	at org.apache.myfaces.shared_impl.taglib.UIComponentBodyTagBase.doEndTag(UIComponentBodyTagBase.java:57)
	at org.apache.jsp.pages.Boleto_jsp._jspx_meth_h_dataTable_0(Boleto_jsp.java:199)
	at org.apache.jsp.pages.Boleto_jsp._jspx_meth_h_form_0(Boleto_jsp.java:145)
	at org.apache.jsp.pages.Boleto_jsp._jspx_meth_f_view_0(Boleto_jsp.java:112)
	at org.apache.jsp.pages.Boleto_jsp._jspService(Boleto_jsp.java:77)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
	at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:419)
	at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:211)
	at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
	at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:140)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Unknown Source)
Caused by: javax.faces.el.EvaluationException: Exception getting value of property listarBoletos of base of type : br.com.greenlinesaude.boleto.managedbean.BoletoMB
	at org.apache.myfaces.el.PropertyResolverImpl.getValue(PropertyResolverImpl.java:99)
	at org.apache.myfaces.el.ELParserHelper$MyPropertySuffix.evaluate(ELParserHelper.java:535)
	at org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:145)
	at org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:386)
	... 45 more
Caused by: javax.faces.el.EvaluationException: Bean: br.com.greenlinesaude.boleto.managedbean.BoletoMB, property: listarBoletos
	at org.apache.myfaces.el.PropertyResolverImpl.getProperty(PropertyResolverImpl.java:461)
	at org.apache.myfaces.el.PropertyResolverImpl.getValue(PropertyResolverImpl.java:85)
	... 48 more
Caused by: java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.myfaces.el.PropertyResolverImpl.getProperty(PropertyResolverImpl.java:457)
	... 49 more
Caused by: java.lang.RuntimeException: javax.naming.NameNotFoundException: Name BoletoBean is not bound in this Context
	at br.com.greenlinesaude.boleto.managedbean.BoletoMB.getListarBoletos(BoletoMB.java:22)
	... 54 more
Caused by: javax.naming.NameNotFoundException: Name BoletoBean is not bound in this Context
	at org.apache.naming.NamingContext.lookup(NamingContext.java:769)
	at org.apache.naming.NamingContext.lookup(NamingContext.java:152)
	at org.apache.naming.SelectorContext.lookup(SelectorContext.java:136)
	at javax.naming.InitialContext.lookup(Unknown Source)
	at br.com.greenlinesaude.boleto.managedbean.BoletoMB.getListarBoletos(BoletoMB.java:20)
	... 54 more
19/06/2007 08:50:19 org.apache.myfaces.shared_tomahawk.config.MyfacesConfig getBooleanInitParameter
INFO: No context init parameter 'org.apache.myfaces.PRETTY_HTML' found, using default value true
19/06/2007 08:50:19 org.apache.myfaces.shared_tomahawk.config.MyfacesConfig getBooleanInitParameter
INFO: No context init parameter 'org.apache.myfaces.ALLOW_JAVASCRIPT' found, using default value true
19/06/2007 08:50:19 org.apache.myfaces.shared_tomahawk.config.MyfacesConfig getBooleanInitParameter
INFO: No context init parameter 'org.apache.myfaces.DETECT_JAVASCRIPT' found, using default value false
19/06/2007 08:50:19 org.apache.myfaces.shared_tomahawk.config.MyfacesConfig getBooleanInitParameter
INFO: No context init parameter 'org.apache.myfaces.AUTO_SCROLL' found, using default value false
19/06/2007 08:50:19 org.apache.myfaces.shared_tomahawk.config.MyfacesConfig getStringInitParameter
INFO: No context init parameter 'org.apache.myfaces.ADD_RESOURCE_CLASS' found, using default value org.apache.myfaces.renderkit.html.util.DefaultAddResource
19/06/2007 08:50:19 org.apache.myfaces.shared_tomahawk.config.MyfacesConfig getBooleanInitParameter
INFO: No context init parameter 'org.apache.myfaces.CHECK_EXTENSIONS_FILTER' found, using default value true
19/06/2007 08:50:19 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet FacesServlet threw exception
javax.faces.FacesException: Cannot get value for expression '#{Boleto.listarBoletos}'
	at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:425)
	at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:211)
	at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
	at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:140)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.jasper.JasperException: Cannot get value for expression '#{Boleto.listarBoletos}'
	at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:512)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:395)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
	at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:419)
	... 18 more

Estou efetuando o lookup desta forma:

		Object ref = null;
		try {
			InitialContext ctx = new InitialContext();
			ref = ctx.lookup("BoletoBean/remote");
		} catch (NamingException e) {
			throw new RuntimeException(e);
		}

		BoletoRemote ejb = (BoletoRemote) ref;
		List list = ejb.listarBoletos(426, 166);

Já deu uma olhada no JMX-Console pra ver se o EJB foi registrado com este nome?

Seu EJB tem a anotação @Stateless(name="BoletoBean/remote")

Ou tem este mapeamento no jboss.xml?

[quote=Rafael Nunes]Já deu uma olhada no JMX-Console pra ver se o EJB foi registrado com este nome?

Seu EJB tem a anotação @Stateless(name="BoletoBean/remote")

Ou tem este mapeamento no jboss.xml?[/quote]

Não estou usando a anotação @Stateless mais sem o atributo name

acho q o problema é em meu arquivo jndi estou com dúvida em onde coloca-lo pois tenho a seguinte separação de projetos BOLETO_model, BOLETO_ejb e BOLETO_view e meu jndi.properties se encontra no meu pacote de ejbs, sabe se é isso???

Na hora de criar o InitialContext, como ele sabe qual é o ‘PROVIDER_URL’?
E se você está fazendo o lookup na camada de view, então lá também tem que existir as informações do lookup: url, initial_context, etc

legal então é só eu colocar o meu jndi.properties na raiz dos meus fontes na pasta src???

ñ teria uma solução por anoatção com injeção de dependencias???

Não, só dentro dos próprios EJBs você consegue injetar outros EJBs.

desculpa encomodar vcs mais ñ estou conseguindo consumir meus ejbs de jeito nenhum, rola no meu teste mais ñ no meu cliente web.

estou fazerndo o seguinte:

[code]public class BoletoMB {

private Boleto boleto = new Boleto();

public List<Boleto> getListarBoletos() {

	Object ref = null;
	try {
		InitialContext ctx = new InitialContext();
		ref = ctx.lookup("BoletoBean/remote");
	} catch (NamingException e) {
		throw new RuntimeException(e);
	}

	BoletoRemote ejb = (BoletoRemote) ref;
	List list = ejb.listarBoletos(426, 166);

	return list;
}

/** Methodos Getters e Setters */

}
[/code]
e está dando a seguinte excesão já coloqui o meu arquivo jndi mais nada

Caused by: java.lang.RuntimeException: javax.naming.NameNotFoundException: Name BoletoBean is not bound in this Context at br.com.greenlinesaude.boleto.managedbean.BoletoMB.getListarBoletos(BoletoMB.java:27) ... 54 more Caused by: javax.naming.NameNotFoundException: Name BoletoBean is not bound in this Context at org.apache.naming.NamingContext.lookup(NamingContext.java:769) at org.apache.naming.NamingContext.lookup(NamingContext.java:152) at org.apache.naming.SelectorContext.lookup(SelectorContext.java:136) at javax.naming.InitialContext.lookup(Unknown Source) at br.com.greenlinesaude.boleto.managedbean.BoletoMB.getListarBoletos(BoletoMB.java:25) ... 54 more

e tb tentei desta forma mais este ñ rola nem no meu teste

[code]public class BoletoMB {

    @EJB BoletoRemote ejb;

private Boleto boleto = new Boleto();

public List<Boleto> getListarBoletos() {

	List list = ejb.listarBoletos(426, 166);

	return list;
}

/** Methodos Getters e Setters */

}
[/code]
mais ai da esta outra excessão

Caused by: java.lang.NullPointerException at br.com.greenlinesaude.boleto.managedbean.BoletoMB.getListarBoletos(BoletoMB.java:22) ... 54 more

Que tal ler o seu jndi.propeties e passa-lo no construtor InitialContext; ai sim vai funcionar.

PS: Se tudo estiver certo obviamente.

E que tal utilizar um Service Locator?

http://java.sun.com/blueprints/corej2eepatterns/Patterns/ServiceLocator.html