SabreAMF を使用して Java Web サービスを呼び出しています。
これは Java 関数です。
@RemotingInclude
public Boolean testAMF(List<Integer> ints)
{
for (Integer element : ints)
{
//do something
}
return true;
}
この関数は整数のリストを受け入れることに注意してください。
これはPHPコードです:
<?php
require 'SabreAMF/Client.php';
function make_request($service, $method, $params)
{
$client = new SabreAMF_Client('https://xxx');
return $client->sendRequest($service.'.'.$method,$params);
}
$ints = array(1,2);
$parameters = array($ints);
$result = make_request('chartManager','testAMF',$parameters);
var_dump($result);
?>
2 つの整数を含む配列を渡します。Java では、この配列はリストとして渡されますが、int ではなく Double が含まれています。
次に、次のエラーが表示されます。
java.lang.ClassCastException : java.lang.Double cannot be cast to java.lang.Integer
整数を double に変更するのはなぜですか?