我的代码实际上包含一个资源类和一个BEan类,其返回类型为JSON。
资源类别

@Path("/json")
public class JSONRetrive {

    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public JSONT getJson(){
        JSONT jsont = new JSONT();
        jsont.setJsont("inr");
        return jsont;
    }
}
/*是否有任何注释将表示JSON。我是否需要为此使用任何其他注释。*/
我的 bean 类
//@XmlRootElement
public class JSONT {
private String jsont;

public String getJsont() {
    return jsont;
}

public void setJsont(String jsont) {
    this.jsont = jsont;
}

}
如果我取消注释@XmlRootElement,它工作正常,是否还有其他替代解决方案

最佳答案

我为此@XmlRootElement找到了替代解决方案,如果我们想在不使用@XmlRootElement的情况下生成JSON响应,则应该使用Jersey Jackson库。将以下给定的代码添加到web.xml(DD文件)中

<init-param>
    <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
    <param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>

和 jackson API相关的 jar 。

关于web-services - 在Jersey网络服务中,是否也必须使用@XmlRootElement进行JSON响应?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15547302/

10-09 09:27