2

Hibernate を使用して、Google Web Toolkit プロジェクトにリモート プロシージャ コールを実装しています。Eclipse から Google の「Web アプリケーション」として実行すると、サービスが呼び出されたときに (Web ページのボタンを押したときに) NoClassDefFoundError 例外が発生します。

Starting Jetty on port 8888
   [WARN] Exception while dispatching incoming RPC call
com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract java.lang.String edu.mit.ll.irbenchmark.client.MetricDataTableService.getDataString(edu.mit.ll.irbenchmark.EvaluationMetric)' threw an unexpected exception: java.lang.NoClassDefFoundError: org/hibernate/cfg/Configuration
    at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:385)
    at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:588)
    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:208)

しかし、プロジェクトを「GWT コンパイル」し、ディレクトリ「war」の内容を tomcat6 にコピーすると、完全に動作します。

次の jar は、私の war/WEB-INF/lib ディレクトリにあります。

antlr-3.4-complete.jar
commons-collections3-3.2.1.jar
dom4j.jar
gwt-servlet.jar
hibernate-commons-annotations-3.2.0.Final.jar
hibernate-core-3.6.9.Final.jar
hibernate-jpa-2.0-api-1.0.1.Final.jar
IRBenchmarker.jar
javassist-3.12.0.GA.jar
jta-1.1.jar
log4j-1.2-1.2.16.jar
mysql-connector-java-5.1.16.jar
slf4j-api-1.6.4.jar
slf4j-log4j12-1.6.4.jar
4

2 に答える 2

1

ライブラリをWEB-INF/libに入れるだけでは、Eclipseには十分ではありません。プロジェクトのクラスパスにも追加する必要があります(jarを右クリックし、[ビルドパス]> [ビルドパスに追加]を選択します)。

于 2012-10-30T20:18:11.293 に答える
1

プロジェクトを右クリックして、[プロパティ]に移動します。次に、[Google]->[Webアプリケーション]に移動します。[このプロジェクトにはWARディレクトリがあります]がオンになっていることと、warフォルダがチェックボックスの下にあることを確認してください。そこにいるので、Google-> Web Tooklitを見て、「Use Google Web Toolkit」がチェックされ、正しいライブラリがアドレス指定されていることを確認しても問題ありません。

于 2012-11-06T20:28:46.793 に答える