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 导入语句就足够了)。

引起: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. 单击“添加 jars...” 6. 在弹出窗口中为每个选择正确的位置必要的罐子。

于 2010-06-06T20:09:01.283 回答
0

对于 JSP/Servlet Web 应用程序,您只需将第 3 方 JAR 文件放到 /WEB-INF/lib 文件夹中。如果项目是一个动态 Web 项目,那么 Eclipse 也会自动注意正确设置构建路径。您不需要摆弄 Eclipse 构建路径。不要忘记撤消这一切

于 2012-07-19T08:33:48.950 回答