PHPから呼び出す必要のあるJavaサービスがあります。これは次のようになります。
getProductsForMode(java.util.Calendar date, int modeId)
PHPの日付クラスをjava.util.Calendarクラスにマッピングするのに問題があります。私はいくつかの異なるアプローチを試しましたが、まったく役に立ちませんでした。
アプローチ#1(JavaのCalendarHandleにマップされるCalendarHandleでDateTimeオブジェクトをラップする):
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致命的なエラー:/ Users / jordanb / Sites /proposal-framework/trunk/plugins/srHessianClientPlugin/hessianphp/のメッセージ「HttpError:MalformedHTTPheader」でキャッチされない例外「HttpError」 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'とメッセージ'Hessian Parser、不正な形式の応答:/ Users / jordanb / Sites/proposal-framework/trunk/plugins/srHessianClientPluginのr'が必要です/hessianphp/Protocol.php:350
誰かがHessianを使用してPHPからJavaにDateTimeまたはある種のタイムスタンプを送信することに成功しましたか?前もって感謝します!