WSO2 ESB ssl端点“读取超时”

时间:2015-07-24 09:13:32

标签: ssl wso2 wso2esb

我有一个新的代理服务,其端点由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 

2 个答案:

答案 0 :(得分:0)

请检查您的SOAP操作。它应该是您需要在终点调用的方法的名称。您的SOAP操作似乎无效。

此外,如果它不是wsdl端点,您可以从ep中删除?wsdl部分。

答案 1 :(得分:0)

  1. 我猜原因是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
    
  2. 我假设您的后端服务使用SOAP12,因为我看到了你 使用WSO2 soap12端点。在SOAP12中,soap操作将在 Content-Type。像:

    Content-Type: application/soap+xml, action="XXXXXX" 
    
  3. 请检查WSO2是否将SOAP操作发送到后端服务。另请参阅Content-Type: application / soap + xml

    如果您使用WS-ADDRESSING进行后端服务,则还需要检查     调试WS-ADDRESSING的头信息。

    1. 。如果您将端点格式设置为" SOAP12",您可能会遇到以下情况 错误 - 缺少肥皂动作:https://wso2.org/jira/browse/ESBJAVA-3047

    2. 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"/>
      
    3. 如果您的后端服务使用WS-ADDRESSING,您可以使用以下属性:

      <property name="PRESERVE_WS_ADDRESSING" value="true"/>