【问题标题】:JPA and derby null pointer exceptionJPA 和 derby 空指针异常
【发布时间】:2010-10-23 08:12:56
【问题描述】:

我正在尝试使用 jpa 2.0 和 derby 进行简单的持久化,但我不断收到 NullPointerException。

异常和实体类 - http://pastebin.com/QqXhRdcN

我试图坚持的代码

EntityManager em = emf.createEntityManager();  
  Course c = new Course("cse", 214, "fall", 2010);  
  em.getTransaction().begin();  
  em.persist(c);  
  em.getTransaction().commit();  
  em.close();  

空指针异常发生在上述代码的第一行第 171 行。

提前致谢!

【问题讨论】:

    标签: java tomcat jpa eclipselink jpa-2.0


    【解决方案1】:

    您的EntityManagerFactory 在初始化时没有正确创建(所以它是null),因此当您尝试使用它来获取EntityManager 时会出现NullPointerException

    虽然 EclipseLink 在尝试为异常生成国际化消息时肯定不会因NPE 而失败(您应该将其记录为错误),但跟踪仍然包含有用的信息,如下面的粗体所示:

    [EL Severe]: 2010-10-23 05:27:14.092--ServerSession(1673653)--java.lang.NullPointerException
        at java.util.ResourceBundle.getBundle(Unknown Source)
        at org.eclipse.persistence.exceptions.i18n.ExceptionMessageGenerator.buildMessage(ExceptionMessageGenerator.java:47)
        at org.eclipse.persistence.exceptions.DatabaseException.unableToAcquireConnectionFromDriverException(DatabaseException.java:376)
        at org.eclipse.persistence.sessions.DefaultConnector.connect(DefaultConnector.java:91)
        at org.eclipse.persistence.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:162)
        at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:579)
        at org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:228)
        at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:380)
        at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:157)
        at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:214)
        at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:202)
        ...

    您的连接池配置很可能有问题,EclipseLink 无法从中获得有效连接。

    如果没有关于您的设置的更多详细信息,例如persistence.xml、Tomcat 数据源配置、您使用 Derby 的方式(在服务器模式下?),我无法给出更准确的答案。但这就是要看的地方。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-31
      • 2014-06-11
      • 1970-01-01
      • 2018-12-31
      • 2023-03-08
      • 2012-09-30
      • 2012-06-05
      • 1970-01-01
      相关资源
      最近更新 更多