我正在开发一个J2EE应用程序,但我遇到的问题是我的_entity_manager
总是null
。我检查了我的代码,我的池,我重新启动了EJB,然后我重新启动了GlassFish服务器,但我仍然遇到了问题。
<persistence version="2.1"
xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="teste" transaction-type="JTA">
<jta-data-source>test</jta-data-source>
</persistence-unit>
</persistence>
@javax.persistence.PersistenceContext(type =
javax.persistence.PersistenceContextType.TRANSACTION, unitName = "test")
private javax.persistence.EntityManager _entity_manager;
Grave:java.lang.NullPointerException at com.sun.common.util.logging.LoggingOutputStream $ LoggingPrintStream.println(LoggingOutputStream.java:228) 在 org.apache.felix.gogo.runtime.threadio.ThreadPrintStream.println(ThreadPrintStream.java:205) 在Controller.BCMS.start(BCMS.java:387)
这是第387行,错误源于:
System.out.println(this._entity_manager);
你有很多想法,为什么它不起作用?
答案 0 :(得分:2)
您已指定PersistenceUnit名称为“teste”,但在您的注释中,您正在寻找单元名称“test”(这是DataSource的JNDI名称,而不是PersistanceUnit)。
试试这个:
@PersistenceContext(unitName = "teste")
private EntityManager _entity_manager;