Java + GWT + GSON на стороне сервера - PullRequest
3 голосов
/ 06 июня 2010

Я уже читал, что нет возможности запустить 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

Ответы [ 2 ]

3 голосов
/ 07 июня 2010

Это проблема пути к классу. GSON не в пути к классам. Какой IDE вы используете? если вы используете затмение - 1. щелкните правой кнопкой мыши проект 2. построить путь 3. настроить путь сборки 4. выберите вкладку «библиотеки» 5. нажмите «Добавить банки ...» 6. во всплывающем окне выберите правильное местоположение для каждого из необходимых банок.

0 голосов
/ 19 июля 2012

В случае веб-приложения JSP / Servlet вам просто нужно удалить сторонние JAR-файлы в папку / WEB-INF / lib.Если проект представляет собой динамический веб-проект, то Eclipse автоматически позаботится о правильной настройке пути сборки.Вам не нужно возиться с Eclipse buildpath.Не забудьте отменить все это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...