2011-07-22 12 views
0

私は現在、Tomcatのようなサーバーを使わずにJavaと通信する必要があるプロジェクトに取り組んでいます。このために私はFlerryを見つけて使いました。JavaとFlexとFlerryとの間のメッセージ

私がAirから最初にインスタンス化したクラスからメッセージを送信しようとする限り、JavaとAirの間の通信は問題ありません。

私がしようとするのは、JavaのMessage Classからのメッセージのサブスクリプトで、そのクラスを使用してJavaからAirに情報とエラーを送信します。

MessageController.java:空気中の

public class MessageController 
{ 

    public MessageController() 
    { 

    } 

    public static void sendErrorMessage(String errorMessage) 
    { 
     NativeObject.sendMessage(errorMessage, "error"); 
    } 

    public static void sendInfoMessage(String infoMessage) 
    { 
     NativeObject.sendMessage(infoMessage, "info"); 
    } 
} 

私は、メッセージングクラスにNativeObjectを作成し、メッセージをサブスクライブ:

var messageController:NativeObject = new NativeObject(); 
messageController.source = "controller.MessageController" ; 
messageController.singleton = true; 
messageController.debug = false; 
messageController.addEventListener(FaultEvent.FAULT, onFileControllerFault, false, 0, true); 

messageController.subscribe("info", infoMessageHandler); 
messageController.subscribe("error", errorMessageHandler); 

あなたはこれが動作しない、推測しているだろうと。

messageController.start(); 

と私のMessageController.javaに私はこの入れ:

public void start() 
{ 
NativeObject.sendMessage("test message", "info"); 
} 
を 私がこれを行う場合、私は唯一例えば、私が直接に加入クラスからのメッセージをディスパッチすることだと思えます

infoMessageHandlerはテストメッセージを含むメッセージを受信します。

Javaのどのクラスからでもメッセージをディスパッチして、Air側でキャッチできますか?

+1

あなたはAIRアプリケーションを作成していますか? FlerryはAdobe AIRのNativeProcess機能を使用しているようです。これはFlexベースのWebアプリケーションでは利用できません。 – JeffryHouser

+0

Flextrasが言ったこと。だからあなたはフロントエンドと通信するためにTomcat(しかし、実際にはあなたのサーバを配備するためのもの)のようなWebベースの技術を使用しています。 –

+0

@Flextras私はAIRアプリケーションを作成しています。私はその記事を編集した。 – Raeghin

答えて

0

私はまだ問題を完全に理解しているかどうかはわかりませんが、Javaの「コミュニケーション」クラスですべてのメッセージを送受信するだけの理由はありますか?それがうまくいくならば、私はJavaインターフェイス/コミュニケーションクラスでパブリックメソッドを設定し、それを使って完了したいと思います。

(これは私がFlerryの仕組みを掘り下げたので、私が見ている行動の原因を指摘するほど十分に思い出すことはできません)。Flerryはオープンソースであり、すべて。なぜそれが特定の方法で動作しているのかを本当に知りたいのであれば、ソースを見ることでそれを理解できると賭けています。 (SpringやHibernateのコードベースやBlazeDSのようなものを学ぶのに6ヶ月かかるとは思っていません)

私は小さなアプリでFlerryを使っていますが、 Flexに何かをディスパッチするクラス!しかし、私が期待している行動のように聞こえるので、あなたが直面している問題を説明する必要があるかもしれないように感じます。

関連する問題