【问题标题】:Java + GWT + GSON on server side服务器端的 Java + GWT + GSON
【发布时间】:2010-06-06 09:06:40
【问题描述】:

我已经读到不可能在 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 更多

【问题讨论】:

  • 没有任何理由不能在 GWT 应用程序的服务器端使用 GSON。你遇到了什么错误?你确定你的 server 包没有被 GWT 编译吗?
  • 你能详细说明你的结果吗?
  • 这听起来与 GWT 的关系不大,而与您的构建路径更相关,不包括对必要 GSON 代码的引用。
  • 我的构建路径包含 gson.jar,它位于 /war/WEB-INF/lib/gson/* 并且 gson 库被标记为导出。我错过了什么吗?
  • 好的解决了:jetty 配置在 /lib/gson/ 中没有找到 gson 库,它应该只是位于 /lib 中。谢谢你的提示。

标签: gwt gson


【解决方案1】:

这是一个类路径问题。 GSON 不在类路径中。您使用哪个 IDE?如果你使用 Eclipse - 1.右键项目 2.构建路径 3.配置构建路径 4.选择“库”选项卡 5.点击“添加罐子...” 6. 在弹出窗口中为每个必要的罐子选择正确的位置。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2011-03-31
      • 1970-01-01
      • 1970-01-01
      • 2012-06-10
      • 2011-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-07
      相关资源
      最近更新 更多