Java+;GWT&x2B;服务器端的GSON

Java+;GWT&x2B;服务器端的GSON,gwt,gson,Gwt,Gson,我已经读到,不可能在GWT客户机代码中运行,但可以在服务器代码中运行它 后一个是我正在努力实现的,但没有开始工作。我认为com.whatever.server包中的任何类都可以访问整个JRE命名空间,包括反射。看来情况并非如此。那么,如何管理所有这些开发人员在GWT服务器代码中使用GSON呢?(我是GWT新手,所以答案可能很简单。) 谢谢 编辑:我的设置如下: test.gwt.xml包含:和 客户端使用私有最终TestServiceAsync testService=GWT.create(t

我已经读到,不可能在GWT客户机代码中运行,但可以在服务器代码中运行它

后一个是我正在努力实现的,但没有开始工作。我认为com.whatever.server包中的任何类都可以访问整个JRE命名空间,包括反射。看来情况并非如此。那么,如何管理所有这些开发人员在GWT服务器代码中使用GSON呢?(我是GWT新手,所以答案可能很简单。)

谢谢

编辑:我的设置如下:

  • test.gwt.xml包含:
  • 客户端使用私有最终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 import语句就足够了),它似乎都会被引发

原因: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多
这是一个类路径问题。GSON不在类路径中。您使用哪种IDE?如果您使用eclipse- 1.右键单击项目 2.构建路径 3.配置生成路径 4.选择“库”选项卡 5.单击“添加罐子…”
6.在弹出窗口中,为每个必要的JAR选择正确的位置。

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

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