Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IBM MobileFirst 8 Java适配器将不接受正文中包含数组的json_Java_Json_Ibm Mobilefirst_Jax Rs - Fatal编程技术网

IBM MobileFirst 8 Java适配器将不接受正文中包含数组的json

IBM MobileFirst 8 Java适配器将不接受正文中包含数组的json,java,json,ibm-mobilefirst,jax-rs,Java,Json,Ibm Mobilefirst,Jax Rs,IBM MobileFirst 8 Java适配器出现问题。我们有一个简单的方法,接受application/json。当发送到适配器的json很简单时,它会成功: {id:2,优先级:45} 但是,当json复杂时,它会失败: {id:2,优先级:45,列表:[{member:a},{member:b}]} 客户端收到一个500错误。没有例外,日志中也没有任何内容可以说明问题的起因 适配器资源方法很简单: @ApiOperationvalue=发布对象,注释= @APIRespValue={

IBM MobileFirst 8 Java适配器出现问题。我们有一个简单的方法,接受application/json。当发送到适配器的json很简单时,它会成功:

{id:2,优先级:45}

但是,当json复杂时,它会失败:

{id:2,优先级:45,列表:[{member:a},{member:b}]}

客户端收到一个500错误。没有例外,日志中也没有任何内容可以说明问题的起因

适配器资源方法很简单:

@ApiOperationvalue=发布对象,注释= @APIRespValue={@ApiResponsecode=200,message=返回发布的对象} @职位 @消费应用程序/json @产品应用程序/json @路径/创建 公共响应createJSONObject对象{ logger.infoObject retrieved;//如果是复杂的json,则从不触发 logger.infoobject; 返回Response.okobject.build; }

在IBM Websphere Liberty上运行的IBM MobileFirst 8实例和IBM MobileFirst 8 DevKit中都可以看到该问题


有人知道是什么导致了这种情况,或者知道如何找到原因吗?

解决方案似乎是将方法签名更改为createString对象,然后将其解析为json,如下所示:

@ApiOperation(value = "Post a object", notes = "")
@ApiResponses(value = { @ApiResponse(code = 200, message = "Returns the posted object") })
@POST
@Consumes("application/json")
@Produces("application/json")
@Path("/create")
public Response create(String object) {
    JSONObject json = JSONObject.parse(object);
    logger.info("Object retrieved"); 
    logger.info(json);
    return Response.ok(json).build();
}