我正在开发J2EE应用程序,但是我的_entity_manager总是null时遇到了问题。我检查了代码,池,重新启动了EJB,然后重新启动了GlassFish服务器,但是仍然遇到问题。

persistence.xml:

<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;


The Pool

The JDBC Ressource

例外:


  严重:java.lang.NullPointerException
       在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);


您有很多想法为什么它不起作用?

最佳答案

您已将PersistenceUnit名称指定为“ teste”,但是在注释中,您正在寻找“ test”的单位名称(这是DataSource的JNDI名称,而不是PersistanceUnit)。

尝试这个:

@PersistenceContext(unitName = "teste")
private EntityManager _entity_manager;

10-07 16:12
查看更多