0

ローカルの Appengine 開発サーバーで Datanucleus Rest リソースに対して Http POST を実行すると、サーバーから次のエラーがスローされます。

Caused by: java.lang.ClassNotFoundException: org.datanucleus.NucleusContext
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass(IsolatedAppClassLoader.java:176)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    ... 37 more

どうやら、appengine で Datnuclues Rest API を使用することは、プラットフォームで許可されていませんか?

編集: pom の Datanucleus:

<dependency>
    <groupId>com.google.appengine.orm</groupId>
    <artifactId>datanucleus-appengine</artifactId>
    <version>2.0.0</version>
</dependency>
<dependency>
    <groupId>org.datanucleus</groupId>
    <artifactId>datanucleus-core</artifactId>
    <version>3.0.0-release</version>
</dependency>

<dependency>
    <groupId>org.datanucleus</groupId>
    <artifactId>datanucleus-api-jpa</artifactId>
    <version>3.0.0-release</version>
</dependency>
<dependency>
    <groupId>org.apache.geronimo.specs</groupId>
    <artifactId>geronimo-jpa_2.0_spec</artifactId>
    <version>1.0</version>
</dependency>

        <!-- Required by Datanucleus REST API -->
        <dependency>
            <groupId>org.datanucleus</groupId>
            <artifactId>datanucleus-rest</artifactId>
            <version>2.0.0-release</version>
        </dependency>
        <dependency>
            <groupId>net.sf.flexjson</groupId>
            <artifactId>flexjson</artifactId>
            <version>2.1</version>
        </dependency>
        <dependency>
            <groupId>org.datanucleus</groupId>
            <artifactId>datanucleus-json</artifactId>
            <version>2.0.0-release</version>
        </dependency>

WEB-INF/lib フォルダー内の DN 関連の jar は次のとおりです。

  • datanucleus-rest-2.0.0-release.jar
  • datanucleus-json-2.0.0-release.jar
  • datanucleus-core-3.0.0-release.jar
  • datanucleus-appengine-2.0.0.jar
  • datanucleus-api-jpa-3.0.0-release.jar

編集:

v3.0 DN 依存関係を使用して、最初の問題を修正しました。

ただし、DN サーブレットから REST リソースにアクセスしようとすると、次のエラーがスローされます。

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}
4

1 に答える 1

2

したがって、あるバージョンの datanucleus-api-rest (おそらく 3.x) を使用していて、必要なバージョンの datanucleus-core (これも 3.x) が存在しません。これは通常 ClassNotFoundException が意味するものです

于 2012-06-17T08:27:31.470 に答える