编程语言
首页 > 编程语言> > Java-Jax-RS无法返回json数据

Java-Jax-RS无法返回json数据

作者:互联网

我正在尝试从一个函数返回JSON,并且抛出了有关序列化的错误.

错误是:

org.codehaus.jackson.map.JsonMappingException: No serializer found for class org.codehaus.jettison.json.JSONArray and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) )

我想我需要对序列化做一些事情,以确保它能正确返回,但是我不确定是什么.

package contentmanagement;

import javax.ws.rs.core.Context;
import javax.ws.rs.core.UriInfo;
import javax.ws.rs.PathParam;
import javax.ws.rs.Consumes;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.GET;
import javax.ws.rs.Produces;
import org.codehaus.jettison.json.JSONArray;

/**
 * REST Web Service
 */
@Path("signups")
public class ContentManagement {

    @Context
    private UriInfo context;

    /** Creates a new instance of ContentManagement */
    public ContentManagement() {
    }

    /**
     * Retrieves representation of an instance of contentmanagement.ContentManagement
     * @return an instance of java.lang.String
     */
    @GET @Path("getHtml")
    @Produces("application/json")
    public JSONArray getHtml() {
        JSONArray myData = new JSONArray();

        for (int x = 0; x < 12; x++) {
            myData.put("This is a test entry"+x);
        }

        return myData;
    }
}

任何人都可以洞悉这里可能出了什么问题吗?

解决方法:

我看不到代码有任何问题-如果我将其放入默认设置的示例Jersey应用程序中,则它可以立即使用.您如何配置JSONConfiguration?

您可以将getHtml()的返回类型更改为String并返回myData.toString().不需要隐式序列化.

标签:jax-rs,java,java-ee
来源: https://codeday.me/bug/20191202/2084980.html