我想处理第三方为我的系统做的HTTPs请求。请求包含JSON对象
我尝试过使用Camel的Jetty组件但是当第三方执行请求时,Camel会抛出以下异常:
org.apache.camel.RuntimeCamelException: Cannot read request parameters due Invalid parameter, expected to be a pair but was {"id":"321","rec":"533","status":"ok"}
Jetty端点在蓝图中定义为:
<camel:endpoint id="getRequestEndpoint" uri="jetty:{{webServiceProtocol}}://{{jettyIp}}:{{jettyPort}}/getRequest?sslContextParametersRef=sslContextParameters"/>
我错过了什么或完全错误的道路?
答案 0 :(得分:4)
确保您的客户端正在为JSON发送相应的Content-Type
HTTP请求标头,即:
Content-Type: application/json
看起来它没有被发送,Jetty组件回退以形成数据解释。
答案 1 :(得分:0)
确保还向端点定义中添加了预期的bean类型,如下所示:
.post()
.type(User.class)
.to("direct:your-queue")
严格来说,这不是答案,因为在这种情况下,您会看到以下所示的不同异常。但我希望它能对某人有所帮助。
org.apache.camel.InvalidPayloadException: No body available of type:
com.example.User but has value: {id=69, name=Hello world} of type:
java.util.LinkedHashMap