Issues

ZF-9285: 'Operation '' is not defined in the WSDL' Error in Zend_Soap_Client

Issue Type: Bug Created: 2010-02-27T17:41:17.000+0000 Last Updated: 2010-07-05T12:08:24.000+0000 Status: Resolved Fix version(s): Reporter: Nick Daugherty (nd987) Assignee: Jan Pieper (jpieper) Tags: - Zend_Soap_Client

Related issues: Attachments:

Description

Zend_Soap_Client has a bug in it that causes the following error to be thrown when calling a method on the soap object:

{quote} Fatal error: Uncaught SoapFault exception: [SOAP-ENV:Client] Operation '' is not defined in the WSDL for this service in /var/www/site/library/Zend/Soap/Client.php:1113 Stack trace: #0 /var/www/site/library/Zend/Soap/Client.php(1113): SoapClient->__soapCall('NDFDgen', Array, NULL, NULL, Array) #1 [internal function]: Zend_Soap_Client->__call('NDFDgen', Array) #2 /var/www/site/public/test.php(156): Zend_Soap_Client->NDFDgen(39, -77, 'time-series', '2010-02-27T12:0...', '2010-02-28T12:0...', Array) #3 {main} thrown in /var/www/site/library/Zend/Soap/Client.php on line 1113 {quote}

If I bypass Zend_Soap_Client and use SoapClient, passing the exact same parameters and then calling the exact same method name, it WORKS.

Code that FAILS (with or without compression being set in options):

<pre class="highlight">
$soap = new Zend_Soap_Client('<a href="http://www.weather.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl">http://weather.gov/forecasts/xml/…</a>', array());

$soap->NDFDgen(39.0000, -77.0000, 'time-series', '2010-02-27T12:00', '2010-02-28T12:00', array(
        'maxt' => 1, 
        'mint' => 1, 
        'temp' => 1,
        'dew' => 1,
        'appt' => 1,
        'pop12' => 1,
        'qpf' => 1,
        'snow' => 1,
        'sky' => 1,
        'rh' => 1,
        'wspd' => 1,
        'wdir' => 1,
        'wx' => 1,
        'icons' => 1,
        'waveh' => 1,
        'incw34' => 1,
        'incw50' => 1,
        'incw64' => 1,
        'cumw34' => 1,
        'cumw50' => 1,
        'cumw64' => 1,
        'wgust' => 1,
        'conhazo' => 1,
        'ptornado' => 1,
        'pxtornado' => 1,
        'phail' => 1,
        'pxhail' => 1,
        'tstmprb' => 1,
        'tstmcat' => 1,
        'pxtstmwinds' => 1,
        'ptstmwinds' => 1,
        'ptotsvrtstm' => 1,
        'pxtotsvrtstm' => 1,
        'tmpabv14d' => 0,
        'tmpblw14d' => 0,
        'tmpabv30d' => 0,
        'tmpblw30d' => 0,
        'tmpabv90d' => 0,
        'tmpblw90d' => 0,
        'prcpabv14d' => 0,
        'prcpblw14d' => 0,
        'prcpabv30d' => 0,
        'prcpblw30d' => 0,
        'prcpabv90d' => 0,
        'prcpblw90d' => 0,
        'precipa_r' => 1,
        'sky_r' => 1,
        'td_r' => 1,
        'temp_r' => 1,
        'wdir_r' => 1,
        'wwa' => 1,
        'wspd_r' => 1
));

Code that WORKS (Substitute Zend_Soap_Client for SoapClient):

<pre class="highlight">
$soap = new SoapClient('<a href="http://www.weather.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl">http://weather.gov/forecasts/xml/…</a>');

$result =  $soap->NDFDgen(39.0000, -77.0000, 'time-series', '2010-02-27T12:00', '2010-02-28T12:00', array(
        'maxt' => 1, 
        'mint' => 1, 
        'temp' => 1,
        'dew' => 1,
        'appt' => 1,
        'pop12' => 1,
        'qpf' => 1,
        'snow' => 1,
        'sky' => 1,
        'rh' => 1,
        'wspd' => 1,
        'wdir' => 1,
        'wx' => 1,
        'icons' => 1,
        'waveh' => 1,
        'incw34' => 1,
        'incw50' => 1,
        'incw64' => 1,
        'cumw34' => 1,
        'cumw50' => 1,
        'cumw64' => 1,
        'wgust' => 1,
        'conhazo' => 1,
        'ptornado' => 1,
        'pxtornado' => 1,
        'phail' => 1,
        'pxhail' => 1,
        'tstmprb' => 1,
        'tstmcat' => 1,
        'pxtstmwinds' => 1,
        'ptstmwinds' => 1,
        'ptotsvrtstm' => 1,
        'pxtotsvrtstm' => 1,
        'tmpabv14d' => 0,
        'tmpblw14d' => 0,
        'tmpabv30d' => 0,
        'tmpblw30d' => 0,
        'tmpabv90d' => 0,
        'tmpblw90d' => 0,
        'prcpabv14d' => 0,
        'prcpblw14d' => 0,
        'prcpabv30d' => 0,
        'prcpblw30d' => 0,
        'prcpabv90d' => 0,
        'prcpblw90d' => 0,
        'precipa_r' => 1,
        'sky_r' => 1,
        'td_r' => 1,
        'temp_r' => 1,
        'wdir_r' => 1,
        'wwa' => 1,
        'wspd_r' => 1
        )
);

Comments

Posted by Jan Pieper (jpieper) on 2010-07-05T12:08:23.000+0000

The server is unable to handle SOAP 1.2 requests. Zend_Soap_Client is using 1.2 as default SOAP version, SoapClient uses 1.1. You need to switch your client's SOAP version to 1.1.


 

 

Have you found an issue?

See the Overview section for more details.

Copyright

© 2006-2016 by Zend, a Rogue Wave Company. Made with by awesome contributors.

This website is built using zend-expressive and it runs on PHP 7.

Contacts