IBM MobileFirst 8 Java适配器将不接受正文中包含数组的json
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中都可以看到该问题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={
有人知道是什么导致了这种情况,或者知道如何找到原因吗?解决方案似乎是将方法签名更改为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();
}