PHP Soap - 无法导入架构

时间:2014-01-29 13:24:09

标签: php web-services soap nginx

我想连接到Soap服务器,但我有错误:

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

我查看了其他问题,我将“allow_url_open”设置为ON,我使用SOAP_1_1并启用了OpenSSL。 有点奇怪,我的SOAP服务器的URL是:

https://domain.com/services?WSDL

在错误中,没有更多的“https”,但只有端口80上的“http”。我试过了:

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.谢谢。

1 个答案:

答案 0 :(得分: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