【发布时间】:2018-04-06 19:19:33
【问题描述】:
我对 WSO2 开发非常陌生,所以这对某人来说可能是一个简单的解决方法!
我正在创建一个演示 API,以使自己更加熟悉 WSO2 开发。我目前坚持将 ESB 中的有效负载从后端(使用 Wiremock 模拟)传递到另一个端点。我可以在 ESB 日志中看到负载正在进入 ESB,但它留下为 0 或我认为是空的。
还有什么需要补充的吗?我只是在 switch 语句中放置了一个发送调解器(检查 HTTP 状态,例如 200)。我玩过一个payloadFactory,但它也是一样的。
ESB 日志:
TID: [0] [ESB] [2018-03-28 15:56:48,652] DEBUG {org.apache.synapse.transport.http.wire} - >> "[\r][\n]" {org.apache.synapse.transport.http.wire}
TID: [0] [ESB] [2018-03-28 15:56:48,652] DEBUG {org.apache.synapse.transport.http.wire} - >> "{"result": 1}" {org.apache.synapse.transport.http.wire}
TID: [0] [ESB] [2018-03-28 15:56:48,699] DEBUG {org.apache.synapse.transport.http.wire} - << "HTTP/1.1 200 OK[\r][\n]" {org.apache.synapse.transport.http.wire}
TID: [0] [ESB] [2018-03-28 15:56:48,700] DEBUG {org.apache.synapse.transport.http.wire} - << "CorrelationId: 685454f5-e5f6-4837-b0b0-1e9e53798ea9[\r][\n]" {org.apache.synapse.transport.http.wire}
TID: [0] [ESB] [2018-03-28 15:56:48,700] DEBUG {org.apache.synapse.transport.http.wire} - << "Content-Type: application/json[\r][\n]" {org.apache.synapse.transport.http.wire}
TID: [0] [ESB] [2018-03-28 15:56:48,700] DEBUG {org.apache.synapse.transport.http.wire} - << "Date: Wed, 28 Mar 2018 14:56:48 GMT[\r][\n]" {org.apache.synapse.transport.http.wire}
TID: [0] [ESB] [2018-03-28 15:56:48,700] DEBUG {org.apache.synapse.transport.http.wire} - << "Server: WSO2-PassThrough-HTTP[\r][\n]" {org.apache.synapse.transport.http.wire}
TID: [0] [ESB] [2018-03-28 15:56:48,700] DEBUG {org.apache.synapse.transport.http.wire} - << "Transfer-Encoding: chunked[\r][\n]" {org.apache.synapse.transport.http.wire}
TID: [0] [ESB] [2018-03-28 15:56:48,700] DEBUG {org.apache.synapse.transport.http.wire} - << "Connection: Keep-Alive[\r][\n]" {org.apache.synapse.transport.http.wire}
TID: [0] [ESB] [2018-03-28 15:56:48,700] DEBUG {org.apache.synapse.transport.http.wire} - << "[\r][\n]" {org.apache.synapse.transport.http.wire}
TID: [0] [ESB] [2018-03-28 15:56:48,701] DEBUG {org.apache.synapse.transport.http.wire} - << "0[\r][\n]" {org.apache.synapse.transport.http.wire}
TID: [0] [ESB] [2018-03-28 15:56:48,701] DEBUG {org.apache.synapse.transport.http.wire} - << "[\r][\n]" {org.apache.synapse.transport.http.wire}
从wiremock发送到ESB的JSON Payload:
{"result": 1}
我尝试过使用 payloadFactory,但无论如何我得到了相同的结果。如果有帮助,我将包含我使用的 payloadFactory 代码:
<payloadFactory media-type="json">
<format>{"amount": $1}</format>
<args>
<arg evaluator="json" expression="$.result"/>
</args>
</payloadFactory>
<property name="messageType" value="application/json" scope="axis2"/>
<property name="contentType" value="application/json" scope="axis2"/>
任何帮助解决此问题或尝试的事情将不胜感激!
【问题讨论】: