【发布时间】: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 中。谢谢你的提示。