java - GWT 中的用户服务

标签 java gwt gae-userservice

我正在编写一个使用 Google App Engine 的测试应用程序。我想使用默认的 UserService 提供登录功能。要登录,我从客户端向服务器发出请求:

public class ShoppingList implements EntryPoint {

...

private ShoppingListServiceAsync service = (ShoppingListServiceAsync) GWT.create(ShoppingListService.class);

public void onModuleLoad() {
    login();
}

private void login() {
    AsyncCallback callback = new AsyncCallback() {
        @Override
        public void onFailure(Throwable caught) {
            Window.alert("Login failed.");
        }

        @Override
        public void onSuccess(Object result) {
            Window.open((String) result, "_self", "");
        }
    };
    // Get login URL; after login, return to current page.
    service.getLoginURL(GWT.getHostPageBaseURL(), callback);
}
}

服务器生成登录URL并返回给客户端:

public class ShoppingListServiceImpl extends RemoteServiceServlet implements ShoppingListService {

...

@Override
public String getLoginURL(String returnURL) {
    UserService userService =  UserServiceFactory.getUserService();
    Boolean loggedIn = userService.isUserLoggedIn();
    String url = userService.createLoginURL("http://google.com");
    User user = userService.getCurrentUser();
    return returnURL;
}
}

代码编译并运行。现在,我的问题是 userService 对象以某种方式未正确加载。当我调用它的任何方法(例如 isUserLoggedIn())时,会引发空指针异常。我错过了什么?

最佳答案

由于您没有发布 UserServiceFactory 的代码,因此很难找出问题的根源。但我猜想 UserService-Instance 没有在您的工厂中正确实例化。

关于java - GWT 中的用户服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20353135/

相关文章:

html - 来自 HTML 的 GWT 小部件

android - UserService 类是如何工作的?

java - 将记录写入托管在 Google Cloud 上的 Aerospike 命名空间时发生 AerospikeException

Java 只读了一半的 web url

java - 在 Thymeleaf 中将 map 渲染到表中的 EL 语法是什么?

java - 使用 Crawler4j 爬网站点列表

java - GWT - 从 GWT 应用程序连接到 talk.google.com

java - 如何在没有 Maven 的情况下将 GWT 和 Material Design Library 结合起来?