3

GWT クライアント コードでGSONを実行する可能性はありませんが、サーバー コードで実行することは可能であることを既に読みました。

後者は私が達成しようとしているものですが、うまくいきません。com.whatever.server パッケージ内のどのクラスも、リフレクションを含む JRE 名前空間全体にアクセスできると思いました。そうではないようです。では、GWT サーバー コードで GSON を使用するすべての開発者をどのように管理したのでしょうか。(私はGWTを初めて使用するので、答えは本当に簡単かもしれません。)

ありがとう。

編集:私の設定は次のとおりです。

  • test.gwt.xml には以下が含まれます:<source path='client'>および<source path='shared'>
  • クライアントが使用private final TestServiceAsync testService = GWT.create(TestService.class);して呼び出すtestService.testMethod();
  • TestService インターフェイスと TestServiceAsync はパッケージ クライアントにあります。
  • test.server に実装された TestServiceImpl が使用Gson g = new Gson();するなど

スローされる例外はjava.lang.NoClassDefFoundError: com/google/gson/Gsonです。ただし、メソッドに GSON コードが含まれているかどうかに関係なく発生するようです (GSON import-statement が含まれていれば十分です)。

原因: java.lang.ClassNotFoundException: com.google.gson.Gson
    java.net.URLClassLoader$1.run(URLClassLoader.java:200) で
    java.security.AccessController.doPrivileged(ネイティブメソッド)で
    java.net.URLClassLoader.findClass(URLClassLoader.java:188) で
    java.lang.ClassLoader.loadClass(ClassLoader.java:307) で
    com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass(IsolatedAppClassLoader.java:151) で
    java.lang.ClassLoader.loadClass(ClassLoader.java:252) で
    java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)で
    ... 33 以上
4

2 に答える 2

3

これはクラスパスの問題です。GSON がクラスパスにありません。どの IDE を使用していますか? Eclipse を使用する場合 - 1. プロジェクトを右クリックします。 2. ビルド パス 3. ビルド パスを構成します。 4. [ライブラリ] タブを選択します。 5. [jar を追加...] をクリックします。必要な瓶。

于 2010-06-06T20:09:01.283 に答える
0

JSP/サーブレット Web アプリケーションの場合は、サードパーティの JAR ファイルを /WEB-INF/lib フォルダーにドロップするだけです。プロジェクトが動的 Web プロジェクトの場合、Eclipse はビルドパスの設定も自動的に処理します。Eclipse ビルドパスをいじる必要はありません。すべて元に戻すことを忘れないでください

于 2012-07-19T08:33:48.950 に答える