0

Tapestry 5、Smackapi3.1.0を使用しています。

接続を確立し、xmppサーバーを介してユーザーと通信できますが、取得した応答は、受信時に標準出力に送信されます。

Chat chat = connection.getChatManager().createChat("blah@jabber.org", new MessageListener() {
    public void processMessage(Chat chat, Message message) {
        // Print out any messages we get back to standard out.
        System.out.println("Received message: " + message.getBody());                   // this works

        showonbrowser = message.getBody();                                                   
        System.out.println(showonbrowser) // this prints nothing
    }
};

コンソールではなくWebで読むことができるように、htmlファイルへの返信を取得しようとしています。ただし、me​​ssage.getBody()をshowonbrowser(ページ上のプロパティ)に設定しようとすると、結果が表示されません。誰かが私がこれを回避する方法を知っていますか?

よろしく、

Kace

4

2 に答える 2

2

Smack はマルチスレッドであり、(黙って) スローされる例外を食い尽くすという厄介な癖があります。ほとんどの場合、スレッドセーフな GUI を使用しておらず、取得できない例外をスローしています。

于 2009-03-30T23:09:35.750 に答える
0

ページがレンダリングされた後processMessageにメソッドが呼び出されていると思います。

(匿名クラスを介して) MessageListener インスタンスを作成しているため、processMessage メソッドがいつ呼び出されるかわかりません。ページで部分的な更新を行い、サーバーをポーリングし、新しいメッセージを取得してページに表示するには、AJAX で何かをする必要があると思います。

于 2009-03-31T21:01:48.917 に答える