[jboss-user] [EJB 3.0] - PersistenceContext injection into a JSF-technology managed-b

tswall do-not-reply at jboss.com
Tue Dec 12 15:28:39 EST 2006


I have tried to inject a PersistenceContext into a JSF managed bean POJO as is outlined here. The backing bean is as follows:
package net.epweb.jsf.backing;
  | 
  | import javax.persistence.EntityManager;
  | import javax.persistence.PersistenceContext;
  | 
  | import net.epweb.ejb.entity.*;
  | 
  | public class Eraseme {
  | 
  |     private @PersistenceContext(unitName = "lynxManager") EntityManager em;
  | 
  | 	private String lastName;
  | 	private String firstName;
  | 
  | 	public String getLastName() {
  | 		return lastName;
  | 	}
  | 	public void setLastName(String lastName) {
  | 		this.lastName = lastName;
  | 	}
  | 
  | 	public String getFirstName() {
  | 		return firstName;
  | 	}
  | 	public void setFirstName(String firstName) {
  | 		this.firstName = firstName;
  | 	}
  | 	
  | 	public String createPatient() {
  | 		Patient p = new Patient();
  | 		System.out.println("Create patient");
  | 		System.out.println(p);
  | 		p.setLastName(lastName);
  | 		p.setFirstName(firstName);
  | 		System.out.print("Entity manager: ");
  | 		System.out.println(em.toString());
  | 		em.persist(p);
  | 		return "success";
  | 	}
  | }
  | 

The managed bean is confidured as follows:

  |   <managed-bean>
  |     <managed-bean-name>eraseme</managed-bean-name>
  |     <managed-bean-class>net.epweb.jsf.backing.Eraseme</managed-bean-class>
  |     <managed-bean-scope>application</managed-bean-scope>
  |   </managed-bean>
  | 

When the JSF page that references the managed bean is referenced JBoss5.0 fails with the following stack trace:

  | 12:51:09,301 ERROR [JBossInjectionProvider] Injection failed on managed bean.
  | javax.naming.NameNotFoundException: net.epweb.jsf.backing.Eraseme not bound
  |         at org.jnp.server.NamingServer.getBinding(NamingServer.java:529)
  |         at org.jnp.server.NamingServer.getBinding(NamingServer.java:537)
  |         at org.jnp.server.NamingServer.getObject(NamingServer.java:543)
  |         at org.jnp.server.NamingServer.lookup(NamingServer.java:267)
  |         at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:628)
  |         at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:590)
  |         at javax.naming.InitialContext.lookup(InitialContext.java:351)
  |         at org.apache.catalina.util.DefaultAnnotationProcessor.lookupFieldResource(DefaultAnnotationProcessor.java:203)
  |         at org.apache.catalina.util.DefaultAnnotationProcessor.processAnnotations(DefaultAnnotationProcessor.java:149)
  |         at org.jboss.web.jsf.integration.injection.JBossInjectionProvider.inject(JBossInjectionProvider.java:93)
  |         at com.sun.faces.config.ManagedBeanFactoryImpl.newInstance(ManagedBeanFactoryImpl.java:312)
  |         at com.sun.faces.application.ApplicationAssociate.createAndMaybeStoreManagedBeans(ApplicationAssociate.java:470)
  |         at com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:82)
  |         at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
  |         at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:62)
  |         at com.sun.faces.el.ChainAwareVariableResolver.resolveVariable(ChainAwareVariableResolver.java:96)
  |         at org.apache.myfaces.trinidadinternal.el.TrinidadVariableResolver.resolveVariable(TrinidadVariableResolver.java:52)
  |         at com.sun.faces.el.VariableResolverChainWrapper.getValue(VariableResolverChainWrapper.java:93)
  |         at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
  |         at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:62)
  |         at org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:45)
  |         at org.apache.el.parser.AstValue.getValue(AstValue.java:86)
  |         at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
  |         at org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:101)
  |         at javax.faces.component.UIOutput.getValue(UIOutput.java:173)
  |         at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:100)
  |         at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:279)
  |         at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:207)
  |         at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:848)
  |         at javax.faces.component.UIComponent.encodeAll(UIComponent.java:893)
  |         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 javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:178)
  |         at org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:171)
  |         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.internalDoFilter(ApplicationFilterChain.java:290)
  |         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  |         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._invokeDoFilter(TrinidadFilterImpl.java:327)
  |         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:291)
  |         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:214)
  |         at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:90)
  |         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  |         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  |         at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
  |         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  |         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  |         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228)
  |         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
  |         at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:174)
  |         at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:86)
  |         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
  |         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
  |         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
  |         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:212)
  |         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:818)
  |         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:624)
  |         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
  |         at java.lang.Thread.run(Thread.java:613)
  | 

I have spent several hours trying to sort out why this is not working, but cannot get anywhere. It would appear from the Sun JEE5 spec and JBoss5.0/JSF WIKI that this should be possible. Any thoughts would be VERY much appreciated.

Thanks,
Scott Wall

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3993171#3993171

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3993171



More information about the jboss-user mailing list