我有一个新的代理服务,其端点由ssl保护。端点的证书是在client-truststore.jks中导入的,当我按url添加端点并通过点击测试按钮测试它时,似乎一切正常。
"Successfully connected to https://XXXXXXXXX/XXXXXXXXXService.asmx?wsdl"
但是当我基于此端点进行代理传递时,我会在调用此代理服务的每个方法时获得读取超时响应,这是wso2carbon.log:
TID: [-1234] [WSO2 Enterprise Service Bus] [2015-07-24 11:47:43,690] INFO {org.apache.axis2.transport.http.HTTPSender} -
Unable to sendViaPost to url[http://XXXXXXXX:8284/services/XXXXXXXXX.XXXXXXXXXXServiceHttpSoap12Endpoint] {org.apache.axis2.transport.http.HTTPSender}
java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:152)
at java.net.SocketInputStream.read(SocketInputStream.java:122)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
at java.io.BufferedInputStream.read(BufferedInputStream.java:254)
at org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:78)
at org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:106)
at org.apache.commons.httpclient.HttpConnection.readLine(HttpConnection.java:1116)
at org.apache
我通过tryit测试端点(在“工具”部分中),但它不起作用!它没有加载。 但是当我打电话时,我可以得到适当的回应:
curl -k -X POST https://XXXXXXX/XXXXXXXService.asmx -H "Content-Type: text/xml;charset=UTF-8" -H "SOAPAction: "http://tempuri.org/apply"" --data-binary @request.xml
答案 0 :(得分:0)
请检查您的SOAP操作。它应该是您需要在终点调用的方法的名称。您的SOAP操作似乎无效。
此外,如果它不是wsdl端点,您可以从ep中删除?wsdl部分。
答案 1 :(得分:0)
我猜原因是SOAP动作。请打开调试日志。 在esb_home / repository / conf / log4j.properties文件中。
log4j.logger.org.apache.synapse.transport.http.headers=DEBUG
log4j.logger.org.apache.synapse.transport.http.wire=DEBUG
您将在WSO2 / wso2开发者工作室中看到类似下面的内容 console。请检查主机是否为您的后端服务主机。
DEBUG - headers http-outgoing-18 >> POST XXXXXXXXXService.asmx HTTP/1.1
DEBUG - headers http-outgoing-18 >> SOAPAction: "XXXXXXXX
DEBUG - headers http-outgoing-18 >> Content-Type: application/soap+xml
DEBUG - headers http-outgoing-18 >> Content-Length: 2017
DEBUG - headers http-outgoing-18 >> Host: XXXXXXXX
我假设您的后端服务使用SOAP12,因为我看到了你
使用WSO2 soap12端点。在SOAP12中,soap操作将在
Content-Type
。像:
Content-Type: application/soap+xml, action="XXXXXX"
请检查WSO2是否将SOAP操作发送到后端服务。另请参阅Content-Type: application / soap + xml
如果您使用WS-ADDRESSING
进行后端服务,则还需要检查
调试WS-ADDRESSING的头信息。
。如果您将端点格式设置为" SOAP12",您可能会遇到以下情况 错误 - 缺少肥皂动作:https://wso2.org/jira/browse/ESBJAVA-3047
wso2默认使用HTTP 1.1 with Transfer-Encoding:chunked when 回叫结束端点。请检查您的后端服务 使用以下属性:
<property name="DISABLE_CHUNKING" value="true" scope="axis2"/>
<property name="FORCE_HTTP_1.0" value="true" scope="axis2" type="STRING"/>
如果您的后端服务使用WS-ADDRESSING
,您可以使用以下属性:
<property name="PRESERVE_WS_ADDRESSING" value="true"/>