Zend Framework

Problem when calling a webservice method with a Zend_XmlRpc_Value_DateTime object as parameter

Details

  • Type: Bug Bug
  • Status: Resolved Resolved
  • Priority: Minor Minor
  • Resolution: Fixed
  • Affects Version/s: 1.9.3
  • Fix Version/s: 1.9.7
  • Component/s: Zend_XmlRpc_Client
  • Labels:
    None

Description

I have an object esposed as web service using Zend_XmlRpc_Server whose signature is:

/**
	 * Return the spots for the date and edition provided
	 *
	 * @param dateTime.iso8601 $day 
	 * @param string $edition two letter iso code for edition
	 * @param string $type type of ads to be retrieved
	 * @return boolean|array spots array or false if there is any error
	 */
	public function dailyAds($day, $edition, $type);}}

When using this webservice I can call it in the following way:

{{$client = new Zend_XmlRpc_Client($endpoint);
$date = new Zend_XmlRpc_Value_DateTime(time());
$edition = 'foo';
$type = 'bar';
$client->getProxy('ads')->dailyAds($date, $edition, $type);}}

as stated here: http://framework.zend.com/manual/en/zend.xmlrpc.client.html#zend.xmlrpc.value.parameters.xmlrpc-value

However when I execute the client code I obtain:

Warning: strtotime() expects parameter 1 to be string, object given in /var/ZendFramework-1.9.3/library/Zend/XmlRpc/Value/DateTime.php on line 55

Catchable fatal error: Object of class Zend_XmlRpc_Value_DateTime could not be converted to string in /var/ZendFramework-1.9.3/library/Zend/XmlRpc/Value/DateTime.php on line 57

If I call the webservice with Zend_Date::now()->get(Zend_Date::DATE_ISO8601) or directly with the timestamp the webservice works fine.

The error is triggered by Zend/XmlRpc/Value.php by the method getXmlRpcValue at line 151, which is called by Zend/XmlRpc/Client.php at line 344.

In previous versions of Zend Framework this code works fine (the old version of my app runs on 1.5.2)

Activity

Hide
Fabio Napoleoni added a comment -

Edit: this behaviour doesn't happen on my development platform with this specs:
OS: Mac OSX 10.6
Webserver: MAMP 1.7.2
php:
PHP 5.2.6 (cli) (built: Jul 24 2008 08:32:16)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
with Zend Debugger v5.2.15, Copyright (c) 1999-2008, by Zend Technologies
ZF 1.9.3PL1

However it does happen on production host with following specs:
OS: Debian Stable
Webserver: apache 2.2.9-10+lenny4
PHP:
PHP 5.2.6-1+lenny3 with Suhosin-Patch 0.9.6.2 (cli) (built: Apr 26 2009 22:16:23)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
ZF: 1.9.3PL1

Show
Fabio Napoleoni added a comment - Edit: this behaviour doesn't happen on my development platform with this specs: OS: Mac OSX 10.6 Webserver: MAMP 1.7.2 php: PHP 5.2.6 (cli) (built: Jul 24 2008 08:32:16) Copyright (c) 1997-2008 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies with Zend Debugger v5.2.15, Copyright (c) 1999-2008, by Zend Technologies ZF 1.9.3PL1 However it does happen on production host with following specs: OS: Debian Stable Webserver: apache 2.2.9-10+lenny4 PHP: PHP 5.2.6-1+lenny3 with Suhosin-Patch 0.9.6.2 (cli) (built: Apr 26 2009 22:16:23) Copyright (c) 1997-2008 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies ZF: 1.9.3PL1
Hide
Fabio Napoleoni added a comment -

Please ignore my previous comment, it doesn't depend on platform, it depends if system lookup is activated, if I add this line:

$client->setSkipSystemLookup(true);

to my code it works on both platforms. Is it normal?

Show
Fabio Napoleoni added a comment - Please ignore my previous comment, it doesn't depend on platform, it depends if system lookup is activated, if I add this line:
$client->setSkipSystemLookup(true);
to my code it works on both platforms. Is it normal?
Hide
Lars Strojny added a comment -

Thanks for your bug report. The issue has been fixed in trunk (r19564) and standard-release-1.9 (r19565).

Show
Lars Strojny added a comment - Thanks for your bug report. The issue has been fixed in trunk (r19564) and standard-release-1.9 (r19565).

People

Vote (0)
Watch (1)

Dates

  • Created:
    Updated:
    Resolved: