ID: 34657
Updated by: dmitry@php.net
Reported By: gareth at wsys dot co dot uk
-Status: Assigned
+Status: Closed
Bug Type: SOAP related
Operating System: Windows, Linux
PHP Version: 5.1.2
Assigned To: dmitry
New Comment:
Seems this bug was already fixed in CVS HEAD, PHP_5_2 and PHP_5_1 long
time ago.
Previous Comments:
------------------------------------------------------------------------
[2006-01-14 12:08:16] sniper@php.net
Assigned to the maintainer.
------------------------------------------------------------------------
[2006-01-13 14:20:13] gareth at wsys dot co dot uk
The only solution I have come up with for this problem is to put the
SOAP call into a seperate php file and then use it with exec().
This does however limit the input/output options available.
------------------------------------------------------------------------
[2005-09-28 08:40:33] garadox47 at ntlworld dot com
I have tried the latest window version you provided a link to, it still
throws an uncatchable fatal error.
------------------------------------------------------------------------
[2005-09-27 19:07:37] sniper@php.net
Please try using this CVS snapshot:
http://snaps.php.net/php5-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php5-win32-latest.zip
------------------------------------------------------------------------
[2005-09-27 14:32:25] gareth at wsys dot co dot uk
Description:
------------
When using the SOAP Client, it normally throws a catchable SoapFault
exception. This helps to elegantly fail if there is a problem with a
Web Service.
However, if the problem occurs when loading the WSDL, it throws a PHP
Fatal Error, which cannot be caught.
This means that if you want to use a web service in a web application,
you cannot handle the error (e.g. there is network congestion, or the
server hosting the web service goes down).
Is this intentional, I am not sure.
If it is intentional (and I hope not given the fact that you are
requesting information from a completely different server, not under
your control), any chance this can be changed to throw either a
SoapFault Exception, or just something that can be caught?
Reproduce code:
---------------
try {
$sc = new SoapClient("some.wsdl", array());
} catch (Exception $e) {
echo 'Error Caught';
}
Expected result:
----------------
Error Caught
Actual result:
--------------
Fatal error: SOAP-ERROR: Parsing WSDL: Couldn't load from '{URL
Removed}'
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=34657&edit=1