Integrating EJB3.0 and JSF

Hi,

I have some problem in integrating EJB into JSF.

I have Entity class Car.java

And Session CarSessionBean.java which implements @Local and @Remote interfaces.

Than i have BackingBean.java which i am trying to integrate into JSF.

When I am running the program i got following error:

JSF1001: Managedbean backBean could not be created.

executePhase(RENDER_RESPONSE 6,com.sun.faces.context.FacesContextImpl@234ab7) threw exception

javax.faces.FacesException: javax.faces.FacesException: com.sun.enterprise.InjectionException: Exception attempting to inject Resolved Ejb-Ref jsfpack.BackingBean/carSession@jndi: - > CarSessionBean intoclass jsfpack.BackingBean

at com.sun.faces.application.ApplicationAssociate.createAndMaybeStoreManagedBeans(ApplicationAssociate.java:521)

at com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:82)

at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143)

at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:62)

at com.sun.el.parser.AstIdentifier.getValue(AstIdentifier.java:65)

at com.sun.el.parser.AstValue.getValue(AstValue.java:106)

at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:192)

at javax.faces.component.UIData.getValue(UIData.java:582)

at javax.faces.component.UIData.getDataModel(UIData.java:1061)

at javax.faces.component.UIData.setRowIndex(UIData.java:417)

at com.sun.faces.renderkit.html_basic.TableRenderer.encodeBegin(TableRenderer.java:85)

at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:810)

at javax.faces.component.UIData.encodeBegin(UIData.java:878)

at javax.faces.component.UIComponent.encodeAll(UIComponent.java:881)

at javax.faces.render.Renderer.encodeChildren(Renderer.java:137)

at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:828)

at javax.faces.component.UIComponent.encodeAll(UIComponent.java:883)

at javax.faces.component.UIComponent.encodeAll(UIComponent.java:889)

at com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:271)

at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:182)

at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:133)

at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:244)

at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:140)

at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)

at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:397)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:278)

at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)

at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:240)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:179)

at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)

at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:73)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:182)

at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)

at com.sun.enterprise.web.VirtualServerPipeline.invoke(VirtualServerPipeline.java:120)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:137)

at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)

at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:239)

at com.sun.enterprise.web.connector.grizzly.ProcessorTask.invokeAdapter(ProcessorTask.java:667)

at com.sun.enterprise.web.connector.grizzly.ProcessorTask.processNonBlocked(ProcessorTask.java:574)

at com.sun.enterprise.web.connector.grizzly.ProcessorTask.process(ProcessorTask.java:844)

at com.sun.enterprise.web.connector.grizzly.ReadTask.executeProcessorTask(ReadTask.java:287)

at com.sun.enterprise.web.connector.grizzly.ReadTask.doTask(ReadTask.java:212)

at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252)

at com.sun.enterprise.web.connector.grizzly.WorkerThread.run(WorkerThread.java:75)

Caused by: javax.faces.FacesException: com.sun.enterprise.InjectionException: Exception attempting to inject Resolved Ejb-Ref jsfpack.BackingBean/carSession@jndi: - > CarSessionBean intoclass jsfpack.BackingBean

at com.sun.faces.config.ManagedBeanFactoryImpl.newInstance(ManagedBeanFactoryImpl.java:325)

at com.sun.faces.application.ApplicationAssociate.createAndMaybeStoreManagedBeans(ApplicationAssociate.java:510)

... 47 more

Caused by: com.sun.enterprise.InjectionException: Exception attempting to inject Resolved Ejb-Ref jsfpack.BackingBean/carSession@jndi: - > CarSessionBean intoclass jsfpack.BackingBean

at com.sun.enterprise.util.InjectionManagerImpl._inject(InjectionManagerImpl.java:373)

at com.sun.enterprise.util.InjectionManagerImpl.inject(InjectionManagerImpl.java:193)

at com.sun.enterprise.util.InjectionManagerImpl.injectInstance(InjectionManagerImpl.java:87)

at com.sun.faces.vendor.GlassFishInjectionProvider.inject(GlassFishInjectionProvider.java:65)

at com.sun.faces.config.ManagedBeanFactoryImpl.newInstance(ManagedBeanFactoryImpl.java:312)

... 48 more

Caused by: com.sun.enterprise.InjectionException: Illegal use ofstatic fieldprivatestatic car.session.CarSessionLocal jsfpack.BackingBean.carSession onclass that only supports instance-based injection

at com.sun.enterprise.util.InjectionManagerImpl._inject(InjectionManagerImpl.java:292)

... 52 more

StandardWrapperValve[Faces Servlet]: Servlet.service()for servlet Faces Servlet threw exception

com.sun.enterprise.InjectionException: Illegal use ofstatic fieldprivatestatic car.session.CarSessionLocal jsfpack.BackingBean.carSession onclass that only supports instance-based injection

at com.sun.enterprise.util.InjectionManagerImpl._inject(InjectionManagerImpl.java:292)

at com.sun.enterprise.util.InjectionManagerImpl.inject(InjectionManagerImpl.java:193)

at com.sun.enterprise.util.InjectionManagerImpl.injectInstance(InjectionManagerImpl.java:87)

at com.sun.faces.vendor.GlassFishInjectionProvider.inject(GlassFishInjectionProvider.java:65)

at com.sun.faces.config.ManagedBeanFactoryImpl.newInstance(ManagedBeanFactoryImpl.java:312)

at com.sun.faces.application.ApplicationAssociate.createAndMaybeStoreManagedBeans(ApplicationAssociate.java:510)

at com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:82)

at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143)

at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:62)

at com.sun.el.parser.AstIdentifier.getValue(AstIdentifier.java:65)

at com.sun.el.parser.AstValue.getValue(AstValue.java:106)

at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:192)

at javax.faces.component.UIData.getValue(UIData.java:582)

at javax.faces.component.UIData.getDataModel(UIData.java:1061)

at javax.faces.component.UIData.setRowIndex(UIData.java:417)

at com.sun.faces.renderkit.html_basic.TableRenderer.encodeBegin(TableRenderer.java:85)

at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:810)

at javax.faces.component.UIData.encodeBegin(UIData.java:878)

at javax.faces.component.UIComponent.encodeAll(UIComponent.java:881)

at javax.faces.render.Renderer.encodeChildren(Renderer.java:137)

at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:828)

at javax.faces.component.UIComponent.encodeAll(UIComponent.java:883)

at javax.faces.component.UIComponent.encodeAll(UIComponent.java:889)

at com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:271)

at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:182)

at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:133)

at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:244)

at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:140)

at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)

at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:397)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:278)

at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)

at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:240)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:179)

at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)

at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:73)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:182)

at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)

at com.sun.enterprise.web.VirtualServerPipeline.invoke(VirtualServerPipeline.java:120)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:137)

at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)

at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:239)

at com.sun.enterprise.web.connector.grizzly.ProcessorTask.invokeAdapter(ProcessorTask.java:667)

at com.sun.enterprise.web.connector.grizzly.ProcessorTask.processNonBlocked(ProcessorTask.java:574)

at com.sun.enterprise.web.connector.grizzly.ProcessorTask.process(ProcessorTask.java:844)

at com.sun.enterprise.web.connector.grizzly.ReadTask.executeProcessorTask(ReadTask.java:287)

at com.sun.enterprise.web.connector.grizzly.ReadTask.doTask(ReadTask.java:212)

at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252)

at com.sun.enterprise.web.connector.grizzly.WorkerThread.run(WorkerThread.java:75)

This is my BackingBean.java source:

package jsfpack;

import car.session.CarSessionLocal;

import java.util.List;

import javax.ejb.EJB;

import javax.naming.InitialContext;

publicclass BackingBean{

@EJB

privatestatic CarSessionLocal carSession;

private List all;

/** Creates a new instance of BackingBean */

public BackingBean(){

}

public List getAll(){

if( all ==null)

all=carSession.queryCarFindAll();

return all;

}

publicvoid setAll(List all){

this.all = all;

}

}

Where i am doing wrong?

Thank you.

[12963 byte] By [Gantua] at [2007-11-27 7:41:30]
# 1
> Illegal use of static field private static car.session.CarSessionLocal > jsfpack.BackingBean.carSession on class that only supports instance-based > injectionmagically matches> @EJB> private static CarSessionLocal
quittea at 2007-7-12 19:22:08 > top of Java-index,Java Essentials,Java Programming...
# 2
Thanks its working.
Gantua at 2007-7-12 19:22:08 > top of Java-index,Java Essentials,Java Programming...