GWT - 管理 RPC 配置中的 bool 方法

标签 gwt gwt-rpc

我使用 GWT 框架在 RPC 架构中制定了自己的方法。现在,我需要添加另一个方法。

所以,我为 RPC 的每个部分编写了这段代码:

package org.sinfonet.client;

import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;

@RemoteServiceRelativePath("gwtservice")
public interface GWTService extends RemoteService {
    public String checkLogin(String nickname, String password);
    public boolean anotherFunction(String nickname);
}

#########################################################

package org.sinfonet.client;

import com.google.gwt.user.client.rpc.AsyncCallback;

public interface GWTServiceAsync {
    public void checkLogin(String nickname, String password, AsyncCallback<String> callback);
    public void anotherFunction(String nickname, AsyncCallback<java.lang.Boolean> asyncCallback);
}    

#########################################################

package org.sinfonet.server;

import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import java.util.ArrayList;

import org.sinfonet.client.GWTService;
import org.sinfonet.mgmt.Configuration;
import org.sinfonet.mgmt.Database;

public class GWTServiceImpl extends RemoteServiceServlet implements GWTService {
    public String checkLogin(String nickname, String password) {
        Database mydb=Configuration.getDatabase();
        mydb.connetti();

        // faccio md5 ed escape
        String log_check_user=nickname;
        String log_check_pass=password;

        // controllo che l'utente esista
        ArrayList<String[]> db_result=null;
        db_result=mydb.selectQuery("SELECT nickname FROM users WHERE nickname='"+log_check_user+"' AND password='"+log_check_pass+"'");
        if(db_result.size()!=0) {
            return "YES";
        }

        // sconnessione al database
        mydb.disconnetti();

        return "NO";
    }

    public boolean anotherFunction(String nickname) {
        // somethings others
        return true;
    }
}

#########################################################

final AsyncCallback<java.lang.Boolean> callCheckLogin = new AsyncCallback<java.lang.Boolean>() {
    public void onSuccess(boolean result) {
        if(result) {
            designLogout(menu_login_label1.getText());
        } else {
            menu_err.setText("Username e password non validi");
        }
    }
};

// Listen for the button clicks
menu_login_button.addClickHandler(new ClickHandler(){
    public void onClick(ClickEvent event) {
        // Make remote call. Control flow will continue immediately and later
        // 'callback' will be invoked when the RPC completes.
        getService().anotherFunction(menu_login_input1.getText(), callCheckLogin);
    }
});

如您所见,我添加了 anotherFunction() 方法( bool 值),但 Netbeans 对我说我需要实现有关 allCheckLogin 的所有 abracts 方法,但我不会这样做:) 我该如何解决这个问题?

最佳答案

所以 Netbeans 提示缺少 onFailure 方法,对吗?如果您不想每次都实现该方法,请自己编写一个抽象类,例如:

public abstract class BaseAsyncCallback<T> implements AsyncCallback<T> {
    @Override
    public void onFailure(Throwable caught) {
        // Perform generic failure handling
    }
}

然后你可以将代码更改为:

final AsyncCallback<java.lang.Boolean> callCheckLogin = 
    new BaseAsyncCallback<java.lang.Boolean>() {
      public void onSuccess(java.lang.Boolean result) {
        ...
      }
    };

现在您不再需要实现 onFailure,除非您需要执行额外的错误处理。

关于GWT - 管理 RPC 配置中的 bool 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4205271/

相关文章:

android - 如何在 Android SyncAdapter 中使用 GWT-RequestFactory(总是出现 ValidationTool-Error)

gwt - 如何使用触摸处理程序? (GWT 支持它们吗?)

java - GWT 服务器端数据库连接 - 找不到 oracle.jdbc.driver.OracleDrive

java - 有没有办法在 .gwt.xml 结构之外指定备用包?

java - appspot.com 上的 Oauth 2.0

gwt - 在 GWT-RPC 中发送 ArrayList 作为参数

tomcat - GWTphonegap PhonegapUtil.prepareService RPC 调用在 Wildfly 中为 "405 Method not found",在 Android 应用程序的 Tomcat 中为 "HPPT status 404"

java - 通过 GWT-RPC 上传文件?

gwt - 使用 UiBinder 生成单元格

exception - GWT RCP ServiceEntryPointSpecifiedException