我的应用程序抛出此错误:

Error : An error occurred trying to instantiate an instance of the API adapter "org.datanucleus.api.jdo.JDOAdapter"
(perhaps you dont have the requisite datanucleus-api-XXX jar in the CLASSPATH?) :
{1}
org.datanucleus.exceptions.NucleusUserException: Error :
An error occurred trying to instantiate an instance of the API adapter "org.datanucleus.api.jdo.JDOAdapter" (perhaps you dont have the requisite datanucleus-api-XXX jar in the CLASSPATH?) :
{1}
...
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)


虽然我的应用程序确实有datanucleus-api-jdo-3.0.0-release.jar

如果不缺少罐子,可能是什么原因?

编辑:

已提出解决此问题的建议:


  这是偶发性错误,有时会在任何情况下发生
  持久性类,但更多用于并行使用的类。
  它发生在JDO和JPA中,好像本地数据存储区一样
  锁定特定的表/实体组而忘记释放它;
  从而导致对ds操作的所有后续调用均失败。一世
  通常不必重启Eclipse;只是停止然后开始
  服务器趋向于解决问题,如果不能解决,则完全刷新/清理
  构建会成功。


但是,我已经重新启动了GAE服务器并重新运行了我的应用程序,但仍然收到相同的错误。

这是完整的POM.xml

这是完整的stack trace.

最佳答案

使用最新版本。包括所有依赖项(jdo-api,datanucleus-api-jdo)。阅读文档,了解CLASSPATH中需要什么(例如,类的增强版本)。

关于java - 调试JDO错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11076051/

10-09 09:52