Я уже читал, что нет возможности запустить GSON в коде клиента GWT, но его можно запустить в код сервера .
Последний - то, чего я пытаюсь достичь, но не получаю работу. Я думал, что любой класс в пакете com.whever.server имеет доступ ко всему пространству имен JRE, включая рефлексию. Кажется, что это не так. Так как же удалось всем этим разработчикам использовать GSON в коде сервера GWT? (Я новичок в GWT, поэтому ответ может быть очень простым.)
Спасибо.
РЕДАКТИРОВАТЬ : мои настройки следующие:
- test.gwt.xml содержит:
<source path='client'>
и <source path='shared'>
- клиент использует
private final TestServiceAsync testService = GWT.create(TestService.class);
и вызывает testService.testMethod();
- Интерфейс TestService и TestServiceAsync находятся в пакете клиента
- TestServiceImpl, реализованный в test.server, использует
Gson g = new Gson();
и пр.
Исключение составляет java.lang.NoClassDefFoundError: com / google / gson / Gson . Но, похоже, он возникает независимо от того, содержит ли метод код GSON или нет (достаточно, чтобы он содержал оператор импорта GSON).
Caused by: java.lang.ClassNotFoundException: com.google.gson.Gson
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass(IsolatedAppClassLoader.java:151)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 33 more