骡子版本:3.4.0 CE
我正在使用模式:web-service-proxy,我的入站端点设置为0.0.0.0,如下所示:
配置文件包含:
http.host = 0.0.0.0
http.port = 8080
流程
<pattern:web-service-proxy name="adm-core-group-ws-proxy">
<http:inbound-endpoint host="${http.host}" port="${http.port}" path="adm/group/GroupService" />
<http:outbound-endpoint host="${visto.host}" port="${visto.port}" path="visto-system-service/GroupService" />
</pattern:web-service-proxy>
wsdl位置的结果
<wsdl:service name="GroupService">
<wsdl:port binding="tns:GroupServiceSoapBinding" name="GroupServicePortTypeImplPort">
<soap:address location="http://0.0.0.0:8080/adm/group/GroupService"/>
</wsdl:port>
如果您注意到,主机不会被机器ip替换,就像其他情况一样。
这是一个已知错误吗?
也许我可以通过使用机器主机名来“修复”它,但这是解决它的好方法吗?它会起作用吗?
谢谢!
答案 0 :(得分:1)
我认为问题来自远程WSDL包含错误地址的事实:
<soap:address location="http://system/adm/service/group/v1_0_0/GroupService.GroupServicePortType" />
而不是system
它应该是${visto.host}
的值,这样WSProxy就可以用来自http:inbound-endpoint
的入站HTTP请求中的主机值替换它。
可以修复此远程WSDL吗?如果没有,您将不得不下载它,手动修复它,然后在pattern:web-service-proxy
中将其作为基于文件的WSDL引用。