0

Android には https://code.google.com/p/android-json-rpc/ を使用、Java サーバーではhttps://github.com/RitwikSaikia/jsonrpcを使用しようとしています。

android-json-rpc クライアントと jsonrpc サーバーのセットアップの例に従いました。

Android アプリで android-json-rpc を使用する場合、次のようにします。

JSONRPCClient client = JSONRPCClient.create("http://service/uri",JSONRPCParams.Versions.VERSION_2);
client.setConnectionTimeout(2000);
client.setSoTimeout(2000);
try 
{
  client.callString("SimpleCalculatorImpl");
  double i = client.callDouble("add", 56, 25);
}
catch (JSONRPCException e)
{
  e.printStackTrace();
}

Java サーバーについては、 https://github.com/RitwikSaikia/jsonrpc#defining-interfacesとhttps://github.com/RitwikSaikia/jsonrpc#hosting-the-serviceのサンプルに従いました

メソッドを呼び出すと

String string = client.callString("SimpleCalculatorImpl");

JSONRPCException: Cannot convert result to String that is inside the callString method. がスローされます。

以前にこのエラーに遭遇した人はいますか、または Android クライアントから JSON 用の Java サーバーに使用するためのより良いライブラリを知っていますか?

4

3 に答える 3

1

私は実際にAndroid クライアント側と Java サーバー側の両方でhttps://github.com/FasterXML/jacksonを使用し、リフレクションを使用して独自のサーブレットを作成し、Java サーバーでメソッドの呼び出しを行い、Android クライアントで結果を取得しました。

于 2013-09-10T18:57:01.820 に答える
1

ライブラリを試したことはありませんが、json が正しく解析されていない場合にこの例外が発生することはわかっています。結果をコピーして、JSONLintなどの json バリデーターで実行してみてください。

お役に立てれば。

于 2013-04-11T19:53:34.307 に答える