[prev in list] [next in list] [prev in thread] [next in thread] 

List:       php-soap
Subject:    Re: RES: [SOAP] SOAP-ERROR: Couldn't Load from external entity (Whereendpoint resolves to another lo
From:       202.172.107.234
Date:       2013-07-02 1:02:19
Message-ID: 64.13.09174.99622D15 () pb1 ! pair ! com
[Download RAW message or body]

Hi Matt,

The imported WSDL name is arbitrary so I don't believe it would affect 
the outcome of this situation. As is the contents (I believe).

To be clear, I've been asked to use the following WSDL URL:

     [1] https://provider.web-service.domain/path/ServiceName?wsdl

There are two WSDLs at the following location

     [2] 
https://provider.web-service.domain/path/ServiceName/another/diff/path/prefix_ServiceName.wsdl
  [3] 
https://provider.web-service.domain/path/ServiceName/another/diff/path/ServiceName.wsdl


* [1] resolves to [2]; Then
* [2] imports [3]

When passing [1]  into SoapClient(), it FATALs (as described earlier)

When passing [2] into SoapClient(), it works.


- superspace



On 02/07/13 04:25, Matt Kynx wrote:
> 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
> > > "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:
> > > 
> > > https://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
> > 

-- 
PHP Soap Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic