2012-06-18 48 views
2

我的应用程序抛出这个错误:调试JDO错误

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

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

编辑:

这是已经提出来解决这个问题:

This is a sporadic error that happens from time to time on any persistable class, but moreso on ones that are used a lot in parallel. It happens in JDO and JPA, and it seems as though the local datastore locks a particular table/entity group and forgets to release it; thus causing all subsequent calls to ds operations to fail. I generally don't have to restart eclipse; just stopping then starting the server tends to fix the problem, if not, a full refresh/clean build will do the trick.

不过,我已经重新启动我的GAE服务器并重新运行我的应用程序仍然得到同样的错误。

下面是完整的POM.xml

下面是完整的stack trace.

+1

正如已经说过的,看看日志,堆栈跟踪等等。 – DataNucleus

+0

是的,看着堆栈跟踪,我可以看到从QueuedThreadPool.java生成的错误,并且搜索互联网这是人们所暗示的:“这是一个零星的错误,不时发生在任何persistable类“ – xybrek

+0

@DataNucleus我已编辑的问题,以显示建议的解决方案 – xybrek

回答

1

使用最新版本。包含所有依赖关系(jdo-api,datanucleus-api-jdo)。阅读CLASSPATH中需要的文档(例如,类的增强版本)。