2012-03-27 60 views
1

我想從WCF使用PHP SoapClient使用WSDL。如果使用下面的代碼使用PHP SoapClient,嘗試Chande XSD從http:// localhost到http://mysite.com

$client = new SoapClient('http://subdomain.xxxxxxx.com:7575/?WSDL'); 

我收到以下錯誤:

Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load  from 'http://localhost:7575/?wsdl=wsdl0' : failed to load external entity "http://localhost:7575/?wsdl=wsdl0" 

欲瞭解WSDL的WSDL是使用特定端口的服務配置文件,規定:

<host> 
     <baseAddresses> 
     <add baseAddress="net.tcp://localhost:7574" /> 
     <add baseAddress="http://localhost:7575" /> 
     </baseAddresses> 
    </host> 

問題是,WSDL重定向到http://localhost:7575爲wsdl = wsdl0文件...然後所有的XSD位置也列出http://localhost:7575....是否有PHP肥皂函數,我可以用它來改變它到http://subdomain.xxxxxxx.com:7575/?wsdl=wsdl0

回答

0

如果你有WCF服務的控制,它可能更容易配置它產生「扁平」的WSDL。這SO question & answer解釋瞭如何將其配置爲單個WSDL文檔。

如果這是不可能的,也許你可以讓他們(或可能由你本地)手動構建單個WSDL文檔,並讓他們將其託管在他們的站點上,以便您的PHP客戶端可以按原樣使用它。