I create a Web Service with YII.
When access WSDL http://192.168.0.222:8190/sri/index.php/wsint/integracao/quote from local network OK
and INTERNET http://{PUBLIC_IP}:8190/sri/index.php/wsint/integracao/quote OK
When i call getEstoque from local network, execution success returnig all informacion need.
Code does call Web Service:
ini_set ( 'soap.wsdl_cache_enable' , 0 );
ini_set ( 'soap.wsdl_cache_ttl' , 0 );
$opts = array(
'http'=>array(
'user_agent' => 'PHPSoapClient'
)
);
$context = stream_context_create($opts);
$aOptions = array('stream_context' => $context,
'cache_wsdl' => WSDL_CACHE_NONE,
'trace'=>true);
$client=new SoapClient('http://{PUBLIC_IP}:8190/sri/index.php/wsint/integracao/quote', $aOptions);
$aRet = $client->getEstoque( '', '', '', '', 1, '' ); // Fails here!!!
print_r( $aRet );
The error when i call from internet:
Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn’t load from ‘http://{PUBLIC_IP}:8190/sri/index.php/wsint/integracao/quote’ : failed to load external entity “http://{PUBLIC_IP}:8190/sri/index.php/wsint/integracao/quote” in D:\webroot\ert\testsws.php:33 Stack trace: #0
D:\webroot\ert\testsws.php(33): SoapClient->__call(‘getEstoque’, Array) #1 D:\webroot\ert\testsws.php(33): SoapClient->getEstoque(’’, ‘’, ‘’, ‘’, 1, ‘’) #2 {main} thrown in D:\webroot\ert\testsws.php on line 33
I am testig from a conection outside the server network. Localhost is my development Apache web server…
From internet try to access http://{PUBLIC_IP}:8190/sri/index.php/wsint/integracao/quote/ws/
Results :
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault><faultcode>WSDL</faultcode><faultstring>SOAP-ERROR: Parsing WSDL: Couldn’t load from ‘http://PUBLIC_IP:8190/sri/index.php/wsint/integracao/quote’ : failed to load external entity “http://PUBLIC_IP:8190/sri/index.php/wsint/integracao/quote”
</faultstring></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
I browse this http://schemas.xmlsoap.org/soap/encoding from the server does runs de web service to test if this is ok, and is OK
How to solve this error ?
thanks in advance