2016-08-13 23 views
0

我刚开始学习Web服务(地铁实现)Web服务的消费者的细节,我将有一个疑问,如下描述 -如何隐藏SOAP地址从

<service name="PurchaseAppService"> 
<port name="PurchaseAppPort" binding="tns:PurchaseAppPortBinding"> 
<soap:address location="http://xxxxx:8088/WebStore/PurchaseAppService"/> 
</port> 
</service> 

如果我提供这个Web服务以这种方式给消费者,然后在将来如果我将服务部署在不同的容器上,那么我必须再次与消费者分享合同,那么是否有任何方法可以使它独立于内部服务器地址的更改。我的意思是,如果地址位置的任何更改都不需要再次分享合同。

回答

0

您可以编辑wsdl,并在将其发送给消费者之前,将其替换为“BASE_URL_WS”之类的位置属性中的值。 我很少看到这种做法。在事实中,WSDL经常发送诸如生成的。
wsdl的提供者有责任为其部署WS的每个现有和有效环境向其客户端提供位置URL。
而客户端有责任根据目标环境使用正确的URL。通常,从客户端,URL位置应该在打包的应用程序(外部文件,数据库等)之外进行配置,以便任何WS URL更改都易于处理。