无法将类的实例序列化为START_ARRAY标记\ n

时间:2013-11-08 15:43:32

标签: java json rest

我正在尝试使用RESTful和JSON的Web服务。

这是我的POST方法:

@POST
public Response setCustomerInvoiceNotifications(SetCustomerInvoiceNotificationsRequestBO requestBO, @Context HttpHeaders hh) throws JSONException, Exception {
   init(config);

    Response response = null;
    ResultBO resultBO = (ResultBO) roalCache.callService("setCustomerInvoiceNotifications", requestBO, true);
    if (resultBO != null) {
        if (resultBO.getResult() != null) {

            SetCustomerInvoiceNotificationsResponseBO responseBO = (SetCustomerInvoiceNotificationsResponseBO)resultBO.getResult();
            ObjectFactory factory = new ObjectFactory();
            JSONObject jsonObject = new JSONObject(responseBO); 
            String result = "@Produces(\"application/json\") Output: \n\n Output: \n\n" + jsonObject;
            response = Response.status(200).cookie(cookie).entity(result).build();
        } else if (resultBO.getCause() != null) {
            JSONObject jsonObject = new JSONObject(resultBO.getCause());
            logger.debug("[{}]  jsonObject.toString = ",  jsonObject.toString() );
            String result = "@Produces(\"application/json\") Output: \n\n Output: \n\n" + jsonObject;  
            logger.debug("[{}]  jsonObject result = ",  result );
            response = Response.status(500).cookie(cookie).entity(result).build();  
        }
    }      
    return response;
}   

我正在使用带数组的JSON:

[{
    "correlationId": "12345432",
    "customerId": "8508871",
    "notificationWhenIssued": {
        "destinations": {
            "channel": "email",
            "address": "razvan.nicolae90@yahoo.com"
        }
    },
    "notificationBeforeDueDate": {
        "destinations": {
            "channel": "email",
            "address": "razvan.nicolae90@yahoo.com"
        },
        "daysBeforeDueDate": "2"
    }
}]

发布JSON后,收到此消息错误:

{"message":"Can not deserialize instance of com.upc.portal.business.SetCustomerInvoiceNotificationsRequestBO 
out of START_ARRAY token\n at 
[Source: weblogic.servlet.internal.ServletInputStreamImpl@17ac5e2; line: 1, column: 1]",
"stackTrace":"[org.codehaus.jackson.map.JsonMappingException.from(Unknown Source)...

1 个答案:

答案 0 :(得分:0)

我找到了问题的答案:

我刚把它添加到我的web.xml文件中:

<init-param>
    <param-name>com.sun.jersey.config.property.packages</param-name>
    <param-value>
     my.own.packages;
     org.codehaus.jackson.jaxrs</param-value>
</init-param>

我还包括一个jar - jackson-all-1.8.10

使用正确的json输入文件格式就可以了。