2014-01-29 36 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”。我想这是问题所在。 –