有没有人使用POJO Mapping到JSON,让Google在Google AppEngine上工作? 我现在花了几个小时才开始工作,但我坚持了下来 两个地方。在Jetty本地运行我比在那里更进一步 AppEngine,但我也不在那里。以下是我遇到的两个问题 遇到:
本地:
Jetty产生以下错误:
SEVERE: A message body writer for Java class
nilsnett.chinese.backend.BusinessObject, and Java type class
nilsnett.chinese.backend.BusinessObject, and MIME media type
application/json was not found
nilsnett.chinese.backend.BusinessObject
是我创建的普通Java类
看起来像这样:
package nilsnett.chinese.backend;
import javax.xml.bind.annotation.XmlRootElement;
public class BusinessObject {
public String text;
public int value;
}
这里有什么问题?
在AppEngine :
Uncaught exception from servlet
java.lang.IncompatibleClassChangeError
现在我在本地也遇到了这个错误,这与我的事实有关
引用asm-3.3.1.jar
(泽西岛所依赖的)和asm-4.0.jar,
which AppEngine depends on. If I _only_ referenced
asm-4.0.jar`本地,我
会在这里得到同样的错误。引用两者显然不能很好地工作
在AppEngine。我怎么能绕过这个?
更多数据:
SDK引用:
Jar与泽西岛相关:
我正在使用Windows 8上的Eclipse Juno进行开发。
答案 0 :(得分:1)
您正在导入XmlRootElement
注释但未使用它。您应该在课前添加@XmlRootElement
。
至于第二个问题 - 你看过: java.lang.IncompatibleClassChangeError: Implementing class deploying to app engine?
答案 1 :(得分:0)
本地的第一个问题是由于缺少.jar文件。我误读了Jersey documentation,认为我只需要章节11.1 Core Server和11.4.3 JSON中列出的文件:
原来我还需要JAXB下列出的jar:
我被Glassfish中运行时没有引用最后一个jar的设置工作的事实所迷惑,但那是因为这个jar与Glassfish捆绑在一起。 Jetty不是这样。