2014-01-29 65 views
1

我想連接到SOAP服務器,但我有錯誤:PHP肥皂 - 無法導入架構

SOAP-ERROR: Parsing Schema: can't import schema from 'http://domain.com:80/services.xsd 

我承擔了其他問題一看,我有我的「allow_url_open」爲ON ,我使用SOAP_1_1並啓用了OpenSSL。 東西是怪異的URL到我的SOAP服務器是:

https://domain.com/services?WSDL 

,並在錯誤,也沒有更多的「https」開頭,但只有「HTTP」 80端口上。我想:

wget https://domain.com/services?WSDL 

它的工作原理。我有一個包含我所有服務的XML文件。但是,使用PHP和:

try 
{ 
    $client = new SoapClient('https://domain.com/services?wsdl',   
    array(
     "trace" => 1, 
     "soap_version" => SOAP_1_1 
    ));     
} 
catch (SoapFault $e) 
{ 
    var_dump($e); 
} 

我有「解析架構:無法導入架構」錯誤。我需要在我的PHP上配置其他的東西嗎?我正在使用Nginx和PHP-FPM 5.謝謝。

回答

2
http://domain.com:80/services.xsd 

你能夠訪問上面的鏈接在您的瀏覽器?

不,我想。類似的,它也不能通過你的代碼訪問。 這個模式位置必須在WSDL即

https://domain.com/services?WSDL 

定義可以從架構添加這些元素融入WSDL。 你可以按照這種方法來擺脫它。

http://weblogs.thinktecture.com/cweyer/2007/05/improving-wcf-interoperability-flattening-your-wsdl.html 
+0

我無法訪問此鏈接,我想WSDL中有一個錯誤,schemaLocation不是好的。我試圖訪問:「https://domain.com/services.xsd」,它的工作原理。你是對的,schemaLocation是在我的WSDL中定義的。我已經寫信給我的SOAP提供者,等着他... –

+0

但是如果你能夠從瀏覽器訪問這個xsd,那麼當你的wsdl試圖訪問它時應該沒有問題,我有點困惑。繼續搜索關於Nginx和PHP-FPM 5設置。可能是我們錯過了一些配置。 – kingAm

+0

事實上,我可以訪問「https://domain.com/services.xsd」,但不能訪問「http://domain.com:80/services.xsd」。我想這是問題所在。 –