go to bug id or search bugs for
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?
$client = new SoapClient('https://amcms.org/soap/GetHandlerTypeByServiceId.wsdl');
It parses the WSDL file successfully then allowing calling the service.
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
#0 /path/to/GetHandlerTypeByServiceId.php(10): SoapClient->SoapClient('GetHandlerTypeB...', Array)
thrown in /path/to/GetHandlerTypeByServiceId.php on line 10
Add a Patch
Add a Pull Request
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
Thank you for the report, and for helping us make PHP better.
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?
Could you please provide a test case.
If you try importing the following wsdl you will get a similar error.
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.
Please talk to RedHat if you need fixes. We don't support PHP 5.1 anymore. 5.2 is out for more than three years and we're already on 5.3 ...