JSON RPC call remote methods in a Java Application Serverは、ajax特性を簡単に実現します.
2510 ワード
JSON RPC JAVAはjavascriptでJava Classを直接呼び出し、Java Classへの戻り値をhandできるようにします.そして、返された値でHtmlを埋めることができます.
JSOnRPCBridgeこれはJSOnRPC Clientと私たちのサーバー側をつなぐ橋で、私たちが呼び出したいサーバー側のObjectをBridgeに登録する必要があります。アプリケーションでは通常Jに登録します。 SONRP CBridge.getGlobalBridge()では、これは単一の例であり、私たちのプログラムはshareというクラスであり、要求するたびにcreate 1つのJSORPCBridgeではこれをセッションに入れますが、その必要はないと思います。 J SONRP CBridge.getGlobalBridge()をcreateすればよい方法もあります.
JSONRPCBridge.getGlobalBridge().registerObject("myObject", myObject);
登録後、clientでjavascriptを使用してこのmyObjectを呼び出すことができます.
jsonrpc.myObject.echo("hello");
Asynchronous calls
実はJSON RPC JAVAの運行原理はやはり比較的に理解しやすくて、呼び出す必要があるオブジェクトをJSOnRPCBridgeの中に登録して、それからJSOnRpcClientはXMLHTTPRequestを使っていくつかの規則情報をJSOnRPCServletに送って、JSOnRPCServletはそれらの規則によってそれからJSOnRPCBridgeの中のオブジェクトに登録する方法を呼び出して、それから戻り値responseをJSOnRPCSerpcClientにあげて、cb関数を呼び出してresultを処理することができます.しかし、ここのresultはjavascriptで対応するオブジェクトint,arrayであることがわかります.JSON RPC JAVAはどのように処理されていますか?com.metaparadigm.jsonrpc.JSOnSerializer com.metaparadigm.jsonrpc.Serializerルールのstringをjavascriptで使用するオブジェクトに変換し、javaオブジェクトをjavascriptのオブジェクトに変換します.JSON RPC JAVAにはいくつかのSerializerが内蔵されています.JSONSerilizer.registerDefaultSerializers()メソッドを参照してください.
public void registerDefaultSerializers() throws Exception { registerSerializer(new BeanSerializer()); registerSerializer(new ArraySerializer()); registerSerializer(new DictionarySerializer()); registerSerializer(new MapSerializer()); registerSerializer(new SetSerializer()); registerSerializer(new ListSerializer()); registerSerializer(new DateSerializer();registerSerializer(new StringSerializer();registerSerializer(new NumberSerializer();registerSerializer(new BooleanSerializer();registerSerializer(new PrimitiveSerializer();}もちろん、自分でカスタムSerializerを書くこともできます.具体的にはドキュメントを参照してください.
現在、プロジェクトではJSON RPC JAVAをSpringが管理するオブジェクトに登録しています.これにより、SpringでApplicationContextをサーブレットContextに登録した後、そのオブジェクトの一部をJSOnRPCBridge.getGlobalBridge()に登録し、任意のhtmlページで呼び出すことができます.
JSOnRPCBridgeこれはJSOnRPC Clientと私たちのサーバー側をつなぐ橋で、私たちが呼び出したいサーバー側のObjectをBridgeに登録する必要があります。アプリケーションでは通常Jに登録します。 SONRP CBridge.getGlobalBridge()では、これは単一の例であり、私たちのプログラムはshareというクラスであり、要求するたびにcreate 1つのJSORPCBridgeではこれをセッションに入れますが、その必要はないと思います。 J SONRP CBridge.getGlobalBridge()をcreateすればよい方法もあります.
JSONRPCBridge.getGlobalBridge().registerObject("myObject", myObject);
登録後、clientでjavascriptを使用してこのmyObjectを呼び出すことができます.
var jsonrpc = new JSONRpcClient("/webapp/JSON-RPC/");
Synchronous calls jsonrpc.myObject.echo("hello");
Asynchronous calls
jsonrpc.test.echo(cb, "hello");
function cb(result, exception) {
if(exception) { alert(exception.message); }
// do stuff here ...
}
cb関数では値resultを多く返して処理できます.実はJSON RPC JAVAの運行原理はやはり比較的に理解しやすくて、呼び出す必要があるオブジェクトをJSOnRPCBridgeの中に登録して、それからJSOnRpcClientはXMLHTTPRequestを使っていくつかの規則情報をJSOnRPCServletに送って、JSOnRPCServletはそれらの規則によってそれからJSOnRPCBridgeの中のオブジェクトに登録する方法を呼び出して、それから戻り値responseをJSOnRPCSerpcClientにあげて、cb関数を呼び出してresultを処理することができます.しかし、ここのresultはjavascriptで対応するオブジェクトint,arrayであることがわかります.JSON RPC JAVAはどのように処理されていますか?com.metaparadigm.jsonrpc.JSOnSerializer com.metaparadigm.jsonrpc.Serializerルールのstringをjavascriptで使用するオブジェクトに変換し、javaオブジェクトをjavascriptのオブジェクトに変換します.JSON RPC JAVAにはいくつかのSerializerが内蔵されています.JSONSerilizer.registerDefaultSerializers()メソッドを参照してください.
public void registerDefaultSerializers() throws Exception { registerSerializer(new BeanSerializer()); registerSerializer(new ArraySerializer()); registerSerializer(new DictionarySerializer()); registerSerializer(new MapSerializer()); registerSerializer(new SetSerializer()); registerSerializer(new ListSerializer()); registerSerializer(new DateSerializer();registerSerializer(new StringSerializer();registerSerializer(new NumberSerializer();registerSerializer(new BooleanSerializer();registerSerializer(new PrimitiveSerializer();}もちろん、自分でカスタムSerializerを書くこともできます.具体的にはドキュメントを参照してください.
現在、プロジェクトではJSON RPC JAVAをSpringが管理するオブジェクトに登録しています.これにより、SpringでApplicationContextをサーブレットContextに登録した後、そのオブジェクトの一部をJSOnRPCBridge.getGlobalBridge()に登録し、任意のhtmlページで呼び出すことができます.