2013-11-25 53 views
0

基於Mules模式的Web服務代理配置(模式:web-service-proxy)支持自動重寫遠程WSDL。但是這個工作到底如何?自動重寫遠程WSDL

遠程URL通常根據這樣的模式被正常buildt起來:

http://host1.domain.com:8080/ServicePath 

在我所看到的實施例中,以具有域一部分的主機名是自動重寫爲僅有的主機名/託管服務器(沒有域的一部分)的計算機名,是這樣的:

http://host2:8080/ServicePath 

請問「自動rewriting'特徵在某種程度上支持主機名的域部分的處理,或者是這之外的範圍這個功能?

回答

1

web-service-proxy嘗試使用出站端點的地址作爲源,並將進行中的請求的地址作爲目的地來重寫地址。它還嘗試處理包含localhost的罕見WSDL,並將其替換爲InetAddress.getLocalHost().getHostName()

因此,如果代理的WSDL與http://host1.domain.com:8080/ServicePath?wsdl訪問和遠程Web服務地址是http://remote.acme.com/service,代理將改寫在WSDL發現http://host1.domain.com:8080/ServicePathhttp://remote.acme.com/service

但是,如果使用http://host1:8080/ServicePath?wsdl訪問相同的服務,那麼您將在WSDL中獲得http://host1:8080/ServicePath

總之:它全部基於調用者的URL,除非WSDL包含localhost的URL(不應該是這種情況)。