gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 12:54:55 25 4
gpt4 key购买 nike

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

{“id”:2,“优先级”:45}

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

{"id":2, "priority": 45, "list": [{"member": "a"}, {"member":"b"}]}

客户端收到 500 错误。没有异常(exception),日志中也没有任何内容可以说明导致问题的原因。

适配器资源方法很简单:


@ApiOperation(value = "发布对象",notes = "")
@ApiResponses(value = { @ApiResponse(code = 200, message = "返回发布的对象") })
@邮政
@Consumes(“应用程序/json”)
@Produces(“应用程序/json”)
@路径(“/创建”)
公共(public)响应创建(JSONObject对象){
logger.info("已检索到对象");//如果“复杂”json 则永远不会触发
记录器.info(对象);
返回 Response.ok(object).build();
}

在 IBM Websphere Liberty 上运行的 IBM MobileFirst 8 实例和 IBM MobileFirst 8 DevKit 中都会出现此问题。

有人知道可能导致此问题的原因,或者知道如何找到原因吗?

最佳答案

解决方案似乎是将方法签名更改为 create(String object),然后将其解析为 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();
}

关于java - IBM MobileFirst 8 Java 适配器不接受正文中包含数组的 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44472575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com