私は次のようなGWTTestCaseを作成しました。
public void testClickButton() {
SampleView view = new SampleView();
RootPanel.get().add(view);
view.textBox.setText("Saeed Zarinfam");
assertEquals("", view.label.getText());
// ButtonElement.as(view.button.getElement()).click();
view.button.getElement().<ButtonElement>cast().click();
assertEquals("Bean \"OCTO\" has been created", view.label.getText());
}
このテストを実行すると、サーブレットに接続します(サーブレットにログを追加しました)が、RPCコールバックが私のサーブレットを呼び出しませんSampleView
。junitは次のように言います。
expected: <Bean "OCTO" has been created>, actual: <>
これは、ボタンクリックハンドラーでの私のコールバックです。
@UiHandler("button")
void onClick(ClickEvent e) {
labelTest.setText("click button");
AsyncCallback<FooBean> callback = new AsyncCallback<FooBean>() {
public void onFailure(Throwable caught) {
// Show the RPC error message to the user
labelTest.setText("call fail");
label.setText("Failure : " + caught.getMessage());
}
public void onSuccess(FooBean result) {
labelTest.setText("call success");
label.setText("Bean \"" + result.getName() + "\" has been created");
}
};
// Make the call. Control flow will continue immediately and later
// 'callback' will be invoked when the RPC completes.
service.createBean("OCTO", callback);
}
この場合、GWT rpcコールバックが呼び出されないのはなぜですか?