Errai は本当に素晴らしいプロジェクトのようです。GWT スタックの一部を errai に移植する作業を開始しました。
バス (Errai の最も有名な部分だと思います) に関して、私は非常に簡単な質問をしました。まだ CDI を導入していません。
ここにQがあります:
サンプル アプリの場合、クライアント側のコードがあります (以下のバス リッスン スニペット)。
public void onModuleLoad() {
bus = ErraiBus.get();
initEBus();
/.... then create the login panel with login button etc./
}
private void initEBus() {
// TODO Auto-generated method stub
System.out.println("initbus");
bus.subscribe("Login", new MessageCallback() {
public void callback(CommandMessage message) {
/**
* When a message arrives, extract the "text" field and
* do something with it
*/
System.out.println( message.get(String.class, "text"));
}
@Override
public void callback(Message message) {
// TODO Auto-generated method stub
}
});
}
サーバー側 (ログイン ボタンが押されると、呼び出しは RPC 経由で行われます):
プライベート MessageBus msgBus = ErraiBus.get();
@Override
public Boolean doLogin(String username, String password) {
// TODO Auto-generated method stub
System.out.println("dispatching message");
msgBus.send(MessageBuilder
.createMessage()
.toSubject("Login")
.with("text", "Hi There").done().getMessage());
return true;
}
これを実行すると、サーバーはメッセージを送信しているように見えます (エラーがなく、メソッドが正常に true を返すと仮定できます) が、クライアントはメッセージを取得せず、何も出力しません。
私たちは非常にばかげたことをしている、または何かが欠けていると思います....誰か私たちが間違っていることを教えてもらえますか?
どうもありがとう、
マイク、