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