http:inbound-endpoint host 0.0.0.0以模式重新绑定到本地ip:web-service-proxy不起作用

时间:2014-03-11 22:58:09

标签: web-services proxy mule

骡子版本: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替换,就像其他情况一样。

这是一个已知错误吗?

也许我可以通过使用机器主机名来“修复”它,但这是解决它的好方法吗?它会起作用吗?

谢谢!

1 个答案:

答案 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引用。