LIVECYCLE DATA SERVICES ES 141 LiveCycle Data Services ES 2.6.1 開発ガイド Flash または Java アプリケーションからの Remoting Service の宛先の呼び出し 注意:以下の内容は、『Remoting Service の使用』への補足です。 Flash Player の NetConnection API を使用することで、必要に応じて、(Flex 以外の)標準的な Flash アプリケーショ ンまたは Flex アプリケーションの ActionScript から、Remoting Service の宛先を呼び出すことができます。LiveCycle Data Services ES の AMFConnection API は、NetConnection API に基づいている Java API ですが、Java アプリケー ションから Remoting Service の宛先を呼び出すことができる点が異なります。上述のどちらかの API を、LiveCycle Data Services ES、BlazeDS またはサードパーティのリモート実装で使用できます。 Flash アプリケーションからの宛先の呼び出し Flash Player の flash.net.NetConnection API を使用して、Flash アプリケーションから Remoting Service の宛先を呼 び出すことができます。NetConnection.connect() メソッドを使用して宛先に接続し、NetConnection.call() メ ソッドを使用してサービスを呼び出します。次の MXML コード例は、RemoteObject ではなく NetConnection を使用 して Remoting Service を呼び出す方法を示しています。 <?xml version="1.0"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%" creationComplete="creationCompleteHandler();"> <mx:Panel id="mainPanel" height="100%" width="100%"> <mx:HBox> <mx:Label text="Enter a text for the server to echo"/> <mx:TextInput id="ti" text="Hello World!"/> <mx:Button label="Send" click="echo()"/> <mx:Button label="Clear" click='ta.text = ""'/> </mx:HBox> <mx:TextArea id="ta" width="100%" height="100%"/> </mx:Panel> <mx:Script> <![CDATA[ import flash.net.NetConnection; import flash.net.ObjectEncoding; import flash.net.Responder; private var nc:NetConnection private function creationCompleteHandler():void { // Create the connection. nc = new NetConnection(); nc.objectEncoding = ObjectEncoding.AMF0; // Connect to the remote URL. nc.connect("http://[server]:[port]/yourapp/messagebroker/amf" ); } private function echo():void { // Call the echo method of a destination on the server named remoting_AMF. nc.call( "remoting_AMF.echo", new Responder( resultHandler, faultHandler ), ti.text ); } private function resultHandler(result:Object):void { ta.text += "Server responded: "+ result + "\n"; } private function faultHandler(fault:Object):void { ta.text += "Received fault: " + fault + "\n"; } ]]> </mx:Script> </mx:Application> LIVECYCLE DATA SERVICES ES 142 LiveCycle Data Services ES 2.6.1 開発ガイド Java アプリケーションからの宛先の呼び出し AMFConnection API は、flex-messaging-core.jar ファイルに含まれる新しい Java クライアント API です。 AMFConnection API を使用することで、Java アプリケーションから Remoting Service の宛先を処理できるようにな ります。AMFConnection API を使用する Java クラスをコンパイルするには、flex-messaging-core.jar ファイルと flex-messaging-common.jar ファイルの両方がクラスパスに含まれている必要があります。 AMFConnection API は、Flash Player の flash.net.NetConnection API に似ていますが、ActionScript コーディング パターンではなく、一般的な Java コーディングパターンを使用します。クラスは、flex-messaging-amf.jar ファイルの flex.messaging.io.amf.client* パッケージに含まれています。主要なクラスは AMFConnection クラスです。 AMFConnection.connect() メソッドを使用してリモート URL に接続し、AMFConnection.call() メソッドを使用し てサービスを呼び出します。エラーが発生した場合は、ClientStatusException 例外と ServerStatusException 例外を キャッチします。次に、AMFConnection を使用して、Remoting Service の宛先を Java クラスのメソッドから呼び出 す方法を示します。 public void callRemoting() { // Create the AMF connection. AMFConnection amfConnection = new AMFConnection(); // Connect to the remote URL. String url = "http://[server]:[port]/yourapp/messagebroker/amf"; try { amfConnection.connect(url); } catch (ClientStatusException cse) { System.out.println(cse); return; } // Make a remoting call and retrieve the result. try { // Call the echo method of a destination on the server named remoting_AMF. Object result = amfConnection.call("remoting_AMF.echo", "echo me1"); } catch (ClientStatusException cse) { System.out.println(cse); } catch (ServerStatusException sse) { System.out.println(sse); } // Close the connection. amfConnection.close(); } AMFConnection API では、Web ブラウザと同様の方法で自動的に cookie が処理されるので、cookie のカスタム処理 は必要ありません。
© Copyright 2024 Paperzz