環境: Eclipse、Maven
ステップ4で立ち往生しているため、 Datanucleus JDOチュートリアルに従っていますが、役に立ちません。「情報」がありますが、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)
何が起こっているのかを理解するために必要なすべてのテクノロジーを読むのにさらに数日かかるように思われるので、これから先に進むのはいいことですが、実際には始めたいだけです。 1日か2日の「解決策」を選択する必要があります。これは、現時点ではHibernateになるようです。
exec:java 構成の追加のクラスパスとして ${basedir} を含めるなど、pom.xml にさまざまな変更を加え、Datanucleus Maven設定にコピーしました。