gpt4 book ai didi

java - 如何使用 Hessian 二进制远程处理协议(protocol)将 DateTime 或某种时间戳从 PHP 发送到 Java?

转载 作者:行者123 更新时间:2023-11-30 05:01:21 27 4
gpt4 key购买 nike

我需要从 PHP 调用一个 Java 服务,如下所示:

getProductsForMode(java.util.Calendar date, int modeId)

我在将 PHP 日期类映射到 java.util.Calendar 类时遇到问题。我尝试了几种不同的方法,但均无济于事:

方法#1(将 DateTime 对象包装在映射到 Java 的 CalendarHandle 的 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 error: Uncaught exception 'HttpError' with message 'HttpError: Malformed HTTP header' in /Users/jordanb/Sites/proposal-framework/trunk/plugins/srHessianClientPlugin/hessianphp/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 Fatal error: Uncaught exception 'HessianError' with message 'Hessian Parser, Malformed reply: expected r' in /Users/jordanb/Sites/proposal-framework/trunk/plugins/srHessianClientPlugin/hessianphp/Protocol.php:350

有人成功使用 Hessian 将 DateTime 或某种时间戳从 PHP 发送到 Java 吗?提前致谢!

最佳答案

仅使用 php time() 函数(返回一个 int 并将其作为 long 发送到 Java)是否实用?在 Java 中,您可以将 long 传递给 new Date(long Date)。

关于java - 如何使用 Hessian 二进制远程处理协议(protocol)将 DateTime 或某种时间戳从 PHP 发送到 Java?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6601246/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com