atom feed9 messages in net.java.dev.glassfish.usersUnable to retrieve EntityManagerFacto...
FromSent OnAttachments
glas...@javadesktop.orgMay 3, 2010 11:28 pm 
glas...@javadesktop.orgMay 20, 2010 6:18 am 
glas...@javadesktop.orgMay 20, 2010 3:43 pm 
glas...@javadesktop.orgJun 28, 2010 2:29 am 
glas...@javadesktop.orgJun 28, 2010 2:32 am 
glas...@javadesktop.orgJun 28, 2010 2:40 am 
glas...@javadesktop.orgJun 28, 2010 2:56 am 
glas...@javadesktop.orgJun 28, 2010 3:20 am 
Mitesh MeswaniJun 28, 2010 2:16 pm 
Subject:Unable to retrieve EntityManagerFactory for unitName null for simple EJB
From:glas...@javadesktop.org (glas@javadesktop.org)
Date:May 3, 2010 11:28:30 pm
List:net.java.dev.glassfish.users

I'm trying to write the very simple Stateless bean with one method for just
getting entity by id (through EntityManager.find()) in local mySql database and
accessing it from a servlet. In server.log I get:

ru.kg.jpa.client.VehicleServlet threw exception javax.ejb.EJBException at
com.sun.ejb.containers.BaseContainer.processSystemException(BaseContainer.java:5070) at com.sun.ejb.containers.BaseContainer.completeNewTx(BaseContainer.java:4968) at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:4756) at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1955) at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1906) at
com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:198) at
com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:84) at $Proxy162.getVehicle(Unknown Source) at ru.kg.jpa.client.VehicleServlet.doGet(VehicleServlet.java:24) at javax.servlet.http.HttpServlet.service(HttpServlet.java:734) at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523) at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279) at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97) at
com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85) at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185) at
org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:332) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:233) at
com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165) at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791) at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693) at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954) at
com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170) at
com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88) at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76) at
com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53) at
com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57) at com.sun.grizzly.ContextTask.run(ContextTask.java:69) at
com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330) at
com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309) at java.lang.Thread.run(Thread.java:619) Caused by: java.lang.IllegalStateException: Unable to retrieve
EntityManagerFactory for unitName null at
com.sun.enterprise.container.common.impl.EntityManagerWrapper.init(EntityManagerWrapper.java:121) at
com.sun.enterprise.container.common.impl.EntityManagerWrapper._getDelegate(EntityManagerWrapper.java:162) at
com.sun.enterprise.container.common.impl.EntityManagerWrapper.find(EntityManagerWrapper.java:309) at ru.kg.jpa.ejb.VehicleServiceBean.getVehicle(VehicleServiceBean.java:25) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at
org.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1052) at
org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:1124) at
com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:5243) at com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:615) at
com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:797) at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:567) at
com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doAround(SystemInterceptorProxy.java:157) at
com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke(SystemInterceptorProxy.java:139) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at
com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:858) at
com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:797) at
com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:367) at com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:5215) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:5203) at
com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:190) ... 29 more |#]

Tried on Glassvish v3.0.1 and 3.1 ("latest_glassfish" downloaded from "Nightly
builds" link) with same results.

Entity class looks like:

@Entity public class Vehicle { public int getVin() { return vin; }

public void setVin(int vin) { this.vin = vin; }

@Id int vin; }

local interface and it's stateless implementation are: @Local public interface VehicleService { Vehicle getVehicle(Integer vin); }

@Stateless public class VehicleServiceBean implements VehicleService { public Vehicle getVehicle(Integer vin) { logger.info("vin: " + vin); if (em == null) logger.info("em is null");

logger.info("em: " + em);

return em.find(Vehicle.class, vin); }

private Logger logger = Logger.getLogger("ru.kg.jpa");

@PersistenceContext EntityManager em; }

persistence.xml (also tried with
<provider>oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider</provider>)
:

<?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0"> <persistence-unit name="jpaUnit"> <properties> <property name="javax.persistence.jdbc.driver"
value="com.mysql.jdbc.Driver"/> <property name="javax.persistence.jdbc.url"
value="jdbc:mysql://localhost/vehicle_db"/> <property name="javax.persistence.jdbc.user" value="root"/> <property name="javax.persistence.jdbc.password" value="root"/> </properties> </persistence-unit> </persistence>

servlet using the service (injected by @EJB): @WebServlet(urlPatterns = "/vehicle") public class VehicleServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { Vehicle vehicle = service.getVehicle(1);

System.out.println("ok! " + vehicle.getVin()); request.getRequestDispatcher("index.jsp").forward(request, response); }

@EJB private VehicleService service; }

As I see in the log and in debug, entity manager is injected and therefore is
not null, but em.find() method fails.

So, this might be some GF bug or may be some configuring in persistence.xml is
wrong. [Message sent by forum member 'nosferatum']

http://forums.java.net/jive/thread.jspa?messageID=400275