この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
Javaのプログラム内でAMF通信するサンプルを作ってみました。 BlazeDSのバージョンは4.0.0を使います。 BlazeDSの以下のjarファイルをビルドパスに通します。
・flex-messaging-common.jar ・flex-messaging-core.jar
昨日作ったサンプルのサービスに接続してみます。 BlazeDSの設定とAMF通信のサンプル
まずはRemote Objectの場合です。 実行するとサーバとAMF通信して戻り値をコンソールに表示しました。 試したサービスの戻り値がString型だったのでキャストしています。
package sample;
import flex.messaging.io.amf.client.AMFConnection;
public class SampleRemoteObject {
private static String URL = "http://localhost:8080/SampleBlazeDS/messagebroker/amf";
public static void main(String[] args) {
try {
AMFConnection connection = new AMFConnection();
connection.connect(URL); // endpoint
String text = (String)connection.call("sample.sayHello"); // destinationとメソッド名
System.out.println(text);
}catch(Exception e) {
e.printStackTrace();
}
}
}
次はMessagingの場合です。 昨日作ったPush通信のサンプルを起動してから 以下のプログラムを実行するとサンプルにメッセージが表示されました。
package sample;
import flex.messaging.io.amf.client.AMFConnection;
import flex.messaging.messages.AsyncMessageExt;
import flex.messaging.messages.Message;
import flex.messaging.util.UUIDUtils;
public class SamplePush {
private static String URL = "http://localhost:8080/SampleBlazeDS/messagebroker/amfpolling";
public static void main(String[] args) {
try {
AMFConnection connection = new AMFConnection();
connection.connect(URL); // endpoint
String uuid = UUIDUtils.createUUID();
AsyncMessageExt message = new AsyncMessageExt();
message.setMessageId(uuid);
message.setDestination("sample2"); // destination
message.setBody("Hello World3!"); // メッセージ
message.setHeader(Message.FLEX_CLIENT_ID_HEADER, uuid);
connection.call("", message );
}catch(Exception e) {
e.printStackTrace();
}
}
}