我为后端服务创建WSO2 ESB代理服务。我可以成功地调用我的DEV WCF服务端点,它驻留在DEV服务器中,端点是DEV服务器名。
但是我使用同样的方式调用测试环境端点,测试端点是一个Big端点。WSO2似乎无法访问Big端点。
(我最大的ip端点是https://hostname/201507/servicename.svc)
[2015-07-08 11:48:21,786] DEBUG - headers http-outgoing-3 >> POST /201507/servicename.svc HTTP/1.1
[2015-07-08 11:48:21,786] DEBUG - headers http-outgoing-3 >> Content-Type: application/soap+xml
[2015-07-08 11:48:21,787] DEBUG - headers http-outgoing-3 >> Transfer-Encoding: chunked
[2015-07-08 11:48:21,787] DEBUG - headers http-outgoing-3 >> Host: hostname:80
[2015-07-08 11:48:21,787] DEBUG - headers http-outgoing-3 >> Connection: Keep-Alive
[2015-07-08 11:48:21,787] DEBUG - headers http-outgoing-3 >> User-Agent: Synapse-PT-HttpComponents-NIOWSO2似乎不能成功地将SOAP发送到正确的端点,端口错误(80)。
我也尝试像这个https://hostname:443/201507/servicename.svc那样硬编码端口,但是没有运气相同的错误。
有人知道原因吗?
编辑:
这可能导致默认情况下使用分组编码的WSO2调用后端服务。
发布于 2015-07-08 11:16:43
问题:端口80的https。这是wso2 ESB4.8.1 (https://wso2.org/jira/browse/ESBJAVA-3336)中的一个bug。
在wso2默认情况下,我的问题可能导致使用HTTP1.1和传输编码:块调用后端端点。
但是我的测试环境后端服务器不能支持分块编码。这会导致错误。
添加
<property name="DISABLE_CHUNKING" value="true" scope="axis2"/>为了通过代理:
在ESB中禁用分块时,内容长度不正确。
参见https://wso2.org/jira/browse/ESBJAVA-3297中的bug
其他方面:
起作用了!但是,如果您的客户端是SOAP11,那么ContentType将作为"text/xml“发送,而后端则接受"application/soap+xml”。你需要添加
<property name="messageType" value="application/soap+xml" scope="axis2" type="STRING"/>
<property name="ContentType" value="application/soap+xml" scope="axis2" type="STRING"/>
(default not needed property ContentType)https://stackoverflow.com/questions/31284121
复制相似问题