1

私はすでにEclipseにJavaプロジェクトを持っており、GWTプロジェクトのサーバーコードでもEclipseでもクラスを使用する必要があります。com.example私はパッケージを持っています、たくさんのサブパッケージでそれを呼びましょう。

私はここの指示に従いました: Eclipse 3.4 GWT 1.6プロジェクト-他のプロジェクトからソースを参照する方法は?ルートパッケージで次のファイルを定義する

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 1.7.0//EN" "http://google-web-toolkit.googlecode.com/svn/tags/1.7.0/distro-source/core/src/gwt-module.dtd">
<module rename-to='example'>
    <inherits name='com.google.gwt.user.User' />
    <source path="*" />
</module>

そしてGWTXMLファイルに追加しました

<inherits name="com.example" />

しかし、私は取得し続けます

java.lang.NoClassDefFoundError

で定義されたクラスの場合com.example

私が間違っていることについて何か考えはありますか?

4

2 に答える 2

2

サーバー側で使用するクラスのみを参照したい場合 (つまり、実際には GWT ではなく)、そのようなものはすべて必要ありません。GWT モジュールは、DevMode によって処理され、最終的には GWT コンパイラによって処理されるクライアント側コードのみに関するものです。

于 2012-09-11T13:58:31.960 に答える
0

get 2.3 を使用していることを除いて、同様のプロジェクト設定があり、問題なく動作します。しかし、次のような警告メッセージが表示されます。

 [WARN] Server class '<CLASS_IN_OTHER_PROJECT>' could not be found in the web app, but was found on the system classpath
   [WARN] Adding classpath entry 'file:/workspace/<OTHER PROJECT>/src/' to the web app classpath for this session
For additional info see: file:/Downloads/gwt-2.3.0/doc/helpInfo/webAppClassPath.html

上記の回避策が導入されていない古いバージョンの gwt を使用している可能性があります。上記の警告メッセージに記載されている情報は、こちらで確認できます。

要するに、次のように述べられています。

すべてのサーバー クラスと依存関係は war ディレクトリに配置する必要があります。ライブラリ (jar) は war/WEB-INF/lib/ に配置し、jar に存在しないクラスは war/WEB-INF/classes に配置する必要があります。 /。

したがって、ユーティリティ プロジェクト (サーバー側クラスに依存するプロジェクト) を jar ファイルとしてエクスポートし、それをモジュールの war/WEB-INF/lib/ フォルダーにドロップしても問題はないと思います。

于 2012-09-11T19:25:12.737 に答える