ID: 41337 User updated by: ahayes at emersion dot com dot au Reported By: ahayes at emersion dot com dot au -Status: Feedback +Status: Open Bug Type: SOAP related Operating System: Fedora Core 5 PHP Version: 5.2.2 Assigned To: dmitry New Comment:
Certainly. If you try importing the following wsdl you will get a similar error. http://www.amcms.org/bugs/pear/41337/GetServices.wsdl If you look at this wsdl it is importing http://www.amcms.org/bugs/pear/41337/GetServices-slide.wsdl which has a port name GetServices_pt which does not have a soap binding. Thanks Alex Previous Comments: ------------------------------------------------------------------------ [2007-05-15 07:22:25] [EMAIL PROTECTED] Could you please provide a test case. ------------------------------------------------------------------------ [2007-05-15 03:11:35] ahayes at emersion dot com dot au Thanks for that, it has fixed the problem for the wsdl being imported, however it doesn't seem to hold if you have the following situation: 1. 1.wsdl Imported into SoapClient 2. 1.wsdl imports 2.wsdl using <import namespace="" location="2.wdsl"/> within 1.wsdl. 3. 2.wsdl contains a reference to a port without a soap binding (if that is the correct terminology). When this situation occurs, the same error is being generated. Is it possible that this fix only fixes the problem for wsdl's being imported by SoapClient and not wsdl's being imported by the wsdl itself? ------------------------------------------------------------------------ [2007-05-10 15:04:20] [EMAIL PROTECTED] This bug has been fixed in CVS. Snapshots of the sources are packaged every three hours; this change will be in the next snapshot. You can grab the snapshot at http://snaps.php.net/. Thank you for the report, and for helping us make PHP better. ------------------------------------------------------------------------ [2007-05-09 08:24:07] ahayes at emersion dot com dot au Description: ------------ Firstly let me just say, I'm am not sure if this is a bug in PHP or Oracle SOA Suite (Oracle seem to think it is PHP however). I am using Oracle's SOA Suite, and we have a problem every time we try to call WSDL files generated by Oracle's ESB. The problem occurs when PHP's SoapClient tries to parse the WSDL. I get the following error: Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: No address associated with <port> in ... ... To fix this problem, all I have to do is remove offending port definition in the WSDL, which does not have an address defined. Once removed, SoapClient can parse the WSDL and call the service. We have many ESB's to call and as such I would like to avoid this if possible. Should PHP's SoapClient even be looking at this port type as it does no have a SOAP binding? Reproduce code: --------------- <?php $client = new SoapClient('https://amcms.org/soap/GetHandlerTypeByServiceId.wsdl'); Expected result: ---------------- It parses the WSDL file successfully then allowing calling the service. Actual result: -------------- PHP Fatal error: SOAP-ERROR: Parsing WSDL: No address associated with <port> in /path/to/GetHandlerTypeByServiceId.php on line 10 PHP Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: No address associated with <port> in /path/to/GetHandlerTypeByServiceId.php:10 Stack trace: #0 /path/to/GetHandlerTypeByServiceId.php(10): SoapClient->SoapClient('GetHandlerTypeB...', Array) #1 {main} thrown in /path/to/GetHandlerTypeByServiceId.php on line 10 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=41337&edit=1