Есть служба Java, которую мне нужно вызвать из PHP, которая выглядит примерно так:
getProductsForMode(java.util.Calendar date, int modeId)
У меня проблемы с отображением моего класса дат PHP в класс java.util.Calendar. Я пробовал пару разных подходов, но все безрезультатно:
Подход № 1 (оборачивание объекта DateTime в CalendarHandle, который отображается на Java CalendarHandle):
class CalendarHandle
{
public $type;
public $date;
function __construct($date=null)
{
$this->date = $date;
}
}
$this->hessianClient = new HessianClient(_HESSIAN_ENDPOINT, $hessianOptions);
$config = &HessianConfig::globalConfig();
$config->typeMap->mapRemoteType('com.caucho.hessian.io.CalendarHandle', 'CalendarHandle');
$time = new CalendarHandle(new DateTime($dateEvaluated));
$products = $this->hessianClient->getProductsForMode($time, 1234);
Ошибка:
[06-Jul-2011 11:16:52] PHP Fatal
ошибка: необработанное исключение 'HttpError'
с сообщением 'HttpError: неправильно сформировано
HTTP заголовок 'в
/Users/jordanb/Sites/proposal-framework/trunk/plugins/srHessianClientPlugin/hessianphp/Http.php:265
Подход № 2:
Отображение даты / времени в java.util.Calendar
$this->hessianClient = new HessianClient(_HESSIAN_ENDPOINT, $hessianOptions);
$config = &HessianConfig::globalConfig();
$config->typeMap->mapRemoteType('java.util.Calendar', 'DateTime');
$time = new DateTime($dateEvaluated);
$products = $this->hessianClient->getProductsForMode($time, 1234);
Ошибка:
[06-Jul-2011 11:28:50] Неустранимая ошибка PHP: необработанное исключение 'HessianError' с сообщением 'Hessian Parser, неправильный ответ: ожидается r' в / Users / jordanb / Sites / offer-framework / trunk / плагинов / srHessianClientPlugin / hessianphp / Protocol.php: 350 * * одна тысяча двадцать один
Кто-нибудь успешно отправлял DateTime или какую-то временную метку из PHP в Java, используя Hessian? Заранее спасибо!