环境:Eclipse、Maven
我一直在关注Datanucleus JDO 教程但无济于事,因为我被困在第 4 步。它有“信息”,但由于我是 Maven 新手和 Datanucleus 新手,没有明确的方法可以找到它。
我想做的只是从 AppEngine& Objectify切换一个正常运行的项目,并将其移植到一个 Linode(使用像 Hibernate 或 Datanucleus 这样的持久层)。这与教程中声称的“Straight Forward™”相去甚远。
执行代码时出现以下错误JDOHelper.getPersistenceManagerFactory("datanucleus.properties")
:
javax.jdo.JDOFatalUserException: A property named javax.jdo.PersistenceManagerFactoryClass must be specified, or a jar file with a META-INF/services/javax.jdo.PersistenceManagerFactory entry must be in the classpath, or a property named javax.jdo.option.PersistenceUnitName must be specified.
at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:861)
at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:1099)
at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:919)
at myproject.HelloWorld.handle(HelloWorld.java:45)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
at org.eclipse.jetty.server.Server.handle(Server.java:365)
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:485)
at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:926)
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:988)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:635)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:628)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
at java.lang.Thread.run(Thread.java:722)
从中取得进展会很好,因为似乎可能需要再花几天时间阅读所有必需的技术才能弄清楚发生了什么,但我实际上只是想开始,所以如果是一两天的“弄清楚”我只需要选择一个“解决方案”,目前看起来它会是休眠状态。
我对 pom.xml 进行了各种修改,例如包括 ${basedir} 作为 exec:java 配置的额外类路径,并复制到Datanucleus maven设置中。