2

wso2esb-4.0.3

我能够执行其他示例。我确实运行了 ESB 和 StockService。看起来 JSON 转换正在发生,但 jsonclient 无法处理 JSON 响应。

ant jsonclient -Daddurl=http://localhost:9000/services/SimpleStockQuoteService -Dtrpurl=http://localhost:8280/services/JSONProxy

产量

[java] org.apache.axis2.AxisFault: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character '{' (code 123) in prolog; expected '<'
 [java]  at [row,col {unknown-source}]: [1,1]
 [java]     at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
 [java]     at org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:123)
 [java]     at org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:67)
 [java]     at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:354)
 [java]     at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:421)
 [java]     at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
 [java]     at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
 [java]     at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:555)
 [java]     at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:531)
 [java]     at samples.userguide.JSONClient.executeClient(Unknown Source)
 [java]     at samples.userguide.JSONClient.main(Unknown Source)

我不是 Axis2 客户端专家。任何人都可以解决这个例子吗?

从示例中发送带有 JSON 有效负载的 curl 也会产生错误:

curl -X POST -H 'Content-type: application/json' -d '{"getQuote":{"request":{"symbol":"IBM"}}}' http://localhost:8280/services/JSONProxy

ESB 控制台:

[2012-05-23 16:28:24,079]  INFO - LogMediator To: /services/JSONProxy, MessageID: urn:uuid:fa1489c7-e12e-4a59-8abb-663a35115cce, Direction: request, Envelope: <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><getQuote><request><symbol>IBM</symbol></request></getQuote></soapenv:Body></soapenv:Envelope>
[2012-05-23 16:28:24,087]  WARN - ClientHandler Received an internal server error : Internal Server Error For : 127.0.0.1:9000 For Request : Axis2Request [Message ID : urn:uuid:ce8b27f3-5aea-461c-a1f5-e7d0c6bbac4d] [Status Completed : true] [Status SendingCompleted : true]
[2012-05-23 16:28:24,089]  INFO - LogMediator To: http://www.w3.org/2005/08/addressing/anonymous, WSAction: , SOAPAction: , MessageID: urn:uuid:ce8b27f3-5aea-461c-a1f5-e7d0c6bbac4d, Direction: response, Envelope: <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><faultstring>com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in prolog
 at [row,col {unknown-source}]: [1,0]</faultstring></soapenv:Body></soapenv:Envelope>
4

1 回答 1

3

当您将消息从 json 转换为soap11 时,请确保将端点格式设置为soap11。您可以通过像这样设置端点地址来做到这一点:<address uri="http://localhost:9000/services/SimpleStockQuoteService" format="soap11"/>在突触配置中。

于 2012-05-25T19:07:42.713 回答