У меня есть следующая проблема:
Не удается создать экземпляр моего объекта SoapClient, когда я передаю ему wsdl, который импортирует схему с использованием относительных путей.(Я полагаю, что это так или иначе, основываясь на моих исследованиях)
Мой код выглядит следующим образом:
$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
вызывается с