如何使用Hessian二进制远程处理协议将日期时间或某种时间戳从PHP发送到Java?
我需要从PHP调用一个Java服务,该服务如下所示:如何使用Hessian二进制远程处理协议将日期时间或某种时间戳从PHP发送到Java?,java,php,datetime,calendar,hessian,Java,Php,Datetime,Calendar,Hessian,我需要从PHP调用一个Java服务,该服务如下所示: getProductsForMode(java.util.Calendar date, int modeId) 我无法将PHP日期类映射到java.util.Calendar类。我尝试了两种不同的方法,但都无济于事: 方法#1(将DateTime对象包装到映射到Java的CalendarHandle的CalendarHandle中): 错误: [06-Jul-2011 11:16:52]PHP致命 错误:未捕获异常“HttpError” 带
getProductsForMode(java.util.Calendar date, int modeId)
我无法将PHP日期类映射到java.util.Calendar类。我尝试了两种不同的方法,但都无济于事:
方法#1(将DateTime对象包装到映射到Java的CalendarHandle的CalendarHandle中):
错误:
[06-Jul-2011 11:16:52]PHP致命
错误:未捕获异常“HttpError”
带有消息“HttpError:格式不正确”
中的HTTP头
/Users/jordanb/Sites/proposal framework/trunk/plugins/srHessianClientPlugin/hessianppp/Http.php:265
方法2:
将DateTime映射到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”,在/Users/jordanb/Sites/proposal framework/trunk/plugins/srHessianClientPlugin/hessianppp/Protocol.PHP:350中显示消息“Hessian Parser,错误回复:预期r”
有没有人使用Hessian成功地将日期时间或某种时间戳从PHP发送到Java?提前谢谢 只使用php time()函数(返回一个int并将其作为long发送给Java)是否可行?在Java中,您可以将long传递给新的日期(long Date)。使用unix时间戳。这是最好的选择 PHP:
$ts = time();
long ts = getTimeFromPhp();
Date dt = new Date(ts);
以某种方式将$ts
传递给java
Java:
$ts = time();
long ts = getTimeFromPhp();
Date dt = new Date(ts);
或者您可以使用日历:
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(ts);
虽然不理想,但这可能是最好的解决方案。谢谢