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 以上