Re: RES: [SOAP] SOAP-ERROR: Couldn't Load from external entity (Whereendpoint resolves to another location)
| From: | Matt Kynx | Date: | Mon, 01 Jul 2013 18:25:16 +0000 |
| Subject: | Re: RES: [SOAP] SOAP-ERROR: Couldn't Load from external entity (Whereendpoint resolves to another location) | ||
| References: | 1 2 3 4 5 | Groups: | php.soap |
| Request: | Send a blank email to php-soap+get-3390@lists.php.net to get a copy of this message | ||
Is the name of the imported wsdl really the same as the wsdl file that's importing it, like in
your example?
Have you tried copying the file and import down locally and trying from there? Failing that, can you
point to a (simplified, anonymised) wsdl that reproduces the problem?
Fwiw, I think the interop guidelines discourage the use of imports, but if it's not your wsdl
there won't be much you can do about that...
Matt
Sent from the thing in my pocket
On 1 Jul 2013, at 02:31, fruitmixer <fruitmixer@hotmail.com> wrote:
> Sorry that does not help.
>
> To iterate, when instantiating the client:
>
> $wsdl =
> 'https://provider.web-service.domain/path/ServiceName?wsdl';
> $client = new SoapClient($wsdl);
>
> I get the following error:
>
> PHP Fatal error: SOAP-ERROR: Parsing WSDL: Couldn't load from
> 'https://provider.web-service.domain/path/ServiceName.wsdl'
> :failed to load external entity
> "https://provider.web-service.domain/path/ServiceName.wsdl"
>
>
> - superspace
>
>
>
> On 28/06/13 21:35, Gerson Czelusniak Junior wrote:
>> Hi,
>>
>> When i call SOAP WebService created with .NET APP using SoapClient PHP the code stay like
>> this:
>>
>> ini_set('display_errors', true);
>> ini_set("soap.wsdl_cache_enabled", "0");
>> error_reporting(E_ALL);
>> $url = "servidor/WebService.asmx?WSDL";
>> $soap = new soapClient($url, array('encoding'=>'UTF-8'));
>> $param = $_POST['param'];
>> $return = $soap->MethodFromWebService(array("param" => $param));
>> Maybe that can help you.
>>
>> -----Mensagem original-----
>> De: superpspace [mailto:fruitmixer@hotmail.com]
>> Enviada em: quinta-feira, 27 de junho de 2013 21:57
>> Para: soap@lists.php.net
>> Assunto: RES: [SOAP] SOAP-ERROR: Couldn't Load from external entity (Where endpoint
>> resolves to another location)
>>
>> 1. I believe the webservice is a .NET APP.
>> 2. When requesting the WSDL from the browser I can see the XML.
>> But since the XML is not trying to import the secondary WSDL, there is no errors/issues.
>>
>> "Gerson Czelusniak Junior" wrote in message
>> news:80940D84E43C0C45AA2C4A9B432B675A19D03520@SN2PRD0202MB120.namprd02.prod.outlook.com...
>>
>> Good Morning,
>>
>> Your webservice is in .NET APP or in PHP?
>> When you call the WSDL from Browser you can see the xml?
>>
>>
>> -----Mensagem original-----
>> De: superpspace [mailto:fruitmixer@hotmail.com] Enviada em: terça-feira, 25 de junho de
>> 2013 22:23
>> Para: soap@lists.php.net
>> Assunto: [SOAP] SOAP-ERROR: Couldn't Load from external entity (Where endpoint
>> resolves to another location)
>>
>> Hello everyone,
>>
>> I have a WSDL in the following URL format (obscured):
>>
>>
>> https://provider.web-service.domain/path/ServiceName?wsdl
>>
>> that resolves to:
>>
>>
>> https://provider.web-service.domain/path/ServiceName/another/diff/path/prefix_ServiceName.wsdl
>>
>> The WSDL has a line like this:
>>
>> <wsdl:import
>> namespace="http://name/space/service/"
>> location="ServiceName.wsdl"></wsdl:import>
>>
>> When loading the former URL into SoapClient, it complains like so:
>>
>> PHP Fatal error: SOAP-ERROR: Parsing WSDL:
>> Couldn't load from
>>
>> 'https://provider.web-service.domain/path/ServiceName.wsdl'
>> :
>> failed to load external entity
>> "7 ªô
>> ©x*×.6¡$https://provider.web-service.domain/path/ServiceName.wsdl"
>>
>> The reason i believe this happens is because it's trying to look for ServiceName.wsdl
>> at the original location,
>>
>> ie. It is looking here:
>>
>> @ràUXŸ„
¹
>> nÚdïrhttps://provider.web-service.domain/path/ServiceName.wsdl
>>
>> instead of the final resolved location, here:
>>
>>
>> https://provider.web-service.domain/path/ServiceName/another/diff/path/ServiceName.wsdl
>>
>> As expected, if i pass the resolved URL into SoapClient, it works.
>>
>> This is not ideal because the resolved address can potentially change at any time.
>>
>> Is this a problem with SoapClient that can *and* need to be resolved?
>>
>> Your thoughts. Thanks
>>
>> superspace
>>
>>
>>
>> The question on stackoverflow is here:
>>
>>
>> http://stackoverflow.com/questions/17226451/php-soapclient-couldnt-load-from-external-entity-where-endpoint-resolves-to-a
>>
>> --
>> PHP Soap Mailing List (http://www.php.net/) To unsubscribe, visit:
>> http://www.php.net/unsub.php
>>
>>
>>
>> --
>> PHP Soap Mailing List (http://www.php.net/) To unsubscribe, visit:
>> http://www.php.net/unsub.php
>
> --
> PHP Soap Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>