I just converted from programmatic declaration of my EntityManager to annotations in one Session bean. The old (working) code:
Code:
package com.myorg.util;
import com.myorg.company.*;
import com.myorg.util.*;
import javax.persistence.*;
public class PlaceHolder {
public Company findByPrimaryKey(CompanyPK companyPK) {
EntityManager em = EJBUtil.getEntityManagerFactory().createEntityManager();
Company c = (Company) em.find(Company.class, new Integer(companyPK.iD));
em.close();
return c;
}
}
I changed this one file to:
Code:
package com.myorg.util;
import com.myorg.company.*;
import com.myorg.util.*;
import javax.persistence.*;
import javax.ejb.*;
@Stateless
public class PlaceHolder {
@PersistenceContext(unitName = "myorgPersistence");
EntityManager em;
public Company findByPrimaryKey(CompanyPK companyPK) {
Company c = (Company) em.find(Company.class, new Integer(companyPK.iD));
return c;
}
}
Here is my persistence.xml:
Code:
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0">
<persistence-unit name="epmPersistence">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>hibernate.ds</jta-data-source>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle9Dialect" />
<property name="hibernate.transaction.factory_class" value="org.hibernate.transaction.CMTTransactionFactory" />
<property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.WeblogicTransactionManagerLookup" />
<property name="showSql" value="true" />
</properties>
</persistence-unit>
</persistence>
The exception that is thrown is:
Code:
<DEBUG> 18:06:25,144 org.springframework.web.servlet.DispatcherServlet: Could not complete request
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NullPointerException
Caused by:
java.lang.NullPointerException
at com.myorg.util.PlaceHolder.findByPrimaryKey(PlaceHolder.java:15)
at com.myorg.util.jsp.ThemeUtil.load(ThemeUtil.java:121)
at com.myorg.util.jsp.ThemeUtil.getAllComponents(ThemeUtil.java:164)
at com.myorg.util.jsp.ThemeUtil.getComponents(ThemeUtil.java:180)
at com.myorg.util.EPMExceptionResolver.resolveException(EPMExceptionResolver.java:52)
at org.springframework.web.servlet.DispatcherServlet.processHandlerException(DispatcherServlet.java:1049)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:836)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:755)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:396)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:350)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:225)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:127)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:499)
at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:245)
at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:142)
at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:247)
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1105)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:841)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:755)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:396)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:350)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:225)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:127)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:499)
It appears that the em is null. Am I injecting improperly? Thanks for any advice.