当通过具有相对路径模式的wsdl传递php SoapClient时失败
||
我有以下问题:
当我向其传递使用相对路径导入架构的wsdl时,SoapClient对象的实例化将失败。 (根据我的研究,我相信情况确实如此)
我的代码如下:
$wsdl = \'http://myproxy/webservice?wsdl\';
$options = array( /* options */ );
$client = new SoapClient($wsdl, $options);
wsdl的模式导入部分:
<schema xmlns=\"http://www.w3.org/2001/XMLSchema\">
<import namespace=\"http://myprovider/namespace1/namespace1\" schemaLocation=\"schema1.xsd\"/>
<import namespace=\"http://myprovider/namespace1/namespace2\" schemaLocation=\"schema2.xsd\"/>
<import namespace=\"http://myprovider/namespace1/namespace3\" schemaLocation=\"schema3.xsd\"/>
</schema>
我得到的错误:
SOAP-ERROR: Parsing WSDL: Couldn\'t load from \'http://myproxy/webservice?wsdl\' : Extra content at the end of the document
研究使我得出如下文章:
https://issues.apache.org/jira/browse/AXIS2-484
据我所知,似乎我有两个选择:
让我的提供程序将架构路径更改为绝对路径
获取我的提供者给我一个模式的副本,以便我可以在从中调用SoapClient
的服务器上进行托管
没有找到相关结果
已邀请:
1 个回复
泻伴墓荒
由于我没有xsd文件,因此这将导致SoapClient引发错误。 然后,此问题的解决方案是消除代理,以便不影响到外部资源的相对路径。解决方案可以在这里找到: 扩展php SoapClient进行siteminder身份验证