2009-02-21 5 views
0

Я использую Tapestry 5, Smack api 3.1.0.Smack api and Java

Я установил соединение, и я в состоянии общаться с пользователем через сервер XMPP, но ответы я получаю посылаемые на стандартный вывод, как они приходят в:

Chat chat = connection.getChatManager().createChat("[email protected]", 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 
    } 
}; 

Я ищу, чтобы получить отвечает на мой html-файл, поэтому я могу читать их в Интернете, а не в консоли. Однако, когда я пытаюсь установить message.getBody() в showonbrowser (свойство на странице), я не вижу результата. Кто-нибудь знает, как я обойду это?

С уважением,

Kace

ответ

2

Смак является многопоточность и имеет неприятную привычку съедать исключения, которые выбрасываются (тихо.) Скорее всего, вы не используете графический интерфейс потокобезопасный и его бросая исключение, которое вы никогда не получите.

0

Я думаю, что метод processMessage называется после страница отображается.

Создается экземпляр MessageListener (через анонимный класс), поэтому вы не знаете, когда будет вызываться метод processMessage. Я думаю, вам нужно что-то сделать с AJAX, чтобы делать частичные обновления на странице, опросить сервер и получать новые сообщения, чтобы показывать их на странице.

Смежные вопросы