ID:               34657
 Comment by:       jhendric at sierra-bravo dot com
 Reported By:      gareth at wsys dot co dot uk
 Status:           Open
 Bug Type:         SOAP related
 Operating System: Windows, Linux
 PHP Version:      5.1.6
 Assigned To:      dmitry
 New Comment:

Similar problem here with PHP 5.1.6.

try {
    $soap = new SoapClient('[...]', array('exceptions' => true)); //
Note: Same results without or without exceptions => true
} catch(Exception $e) {
    var_dump($e);
}

Results in:

Warning: SoapClient::__construct([...])
[function.SoapClient---construct]: failed to open stream: HTTP request
failed! HTTP/1.1 404 Not Found in [...]

Warning: SoapClient::__construct() [function.SoapClient---construct]:
I/O warning : failed to load external entity "..." in [...]

Fatal error: SOAP-ERROR: Parsing WSDL: Couldn't load from '[...]' in
[...]


Previous Comments:
------------------------------------------------------------------------

[2006-12-21 23:32:24] [EMAIL PROTECTED]

I get 3 warning + a SoapFault exception when running Lukas' test case
there. The output is:

Warning: SoapClient::SoapClient(): php_network_getaddresses:
getaddrinfo failed: Name or service not known in
/home/ek/projects/php_5_2/t on line 4

Warning: SoapClient::SoapClient(http://i_dont_exist.com/some.wsdl):
failed to open stream: No such file or directory in
/home/ek/projects/php_5_2/t on line 4

Warning: SoapClient::SoapClient(): I/O warning : failed to load
external entity "http://i_dont_exist.com/some.wsdl"; in
/home/ek/projects/php_5_2/t on line 4
string(9) "SoapFault"
NULL

I think getting 3 warning and an exception for failing to load WSDL
file is a bit excessive though :)


------------------------------------------------------------------------

[2006-12-19 14:10:44] [EMAIL PROTECTED]

I can reproduce this error with php 5.1.4 and 5.2.0 on windows. And it
seems Derick was also able to reproduce it on Linux. Using the
following we get 3 warnings and a fatal error:

<?php

try {
  $client = new SoapClient('http://i_dont_exist.com/some.wsdl');
} catch (SoapFault $e) {
var_dump(get_class($e));
} catch (Exception $e) {
var_dump(get_class($e));
}
var_dump($client);

It really should not do anything but throw an exception, as this is
what is defined to happen for fatal errors in constructors for all
extensions.

------------------------------------------------------------------------

[2006-09-12 09:56:52] gareth at wsys dot co dot uk

OK, the debug information shows that the Soap client class is now
throwing an uncaught SoapFault exception (which causes the fatal
error).

with a try{ } catch(SoapFault $exception) I can continue the script.

I've closed the bug.

------------------------------------------------------------------------

[2006-09-12 08:56:12] [EMAIL PROTECTED]

I cannot reproduce the bug even with 5.1.4. Try "php -d log_errors=0
test.php". May be you are seeing log message and don't see "Error
Caught" after it?

------------------------------------------------------------------------

[2006-09-11 07:50:34] gareth at wsys dot co dot uk

I have tried to use set_error_handler(), but as you know it cannot
catch fatal errors.

Does anyone else have a workaround?

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/34657

-- 
Edit this bug report at http://bugs.php.net/?id=34657&edit=1

Reply via email to