我正在开发一款仅在您是管理员时才会加载的Google应用。这是我试图做的一个例子。
public class MyAppEntryPoint implements EntryPoint {
@Override
public void onModuleLoad() {
appUserServ = GWT.create(AppUserService.class);
appUserServ.IsAdministrator(new AsyncCallback<Boolean>() {
@Override
public void onSuccess(Boolean isAdmin) {
if(isAdmin) {
LoadUI(); //Loads the site.
}
}
@Override
public void onFailure(Throwable caught) {
//handle error
}
};
}
}
AppUserService.IsAdministrator
调用AppUser.IsAdministrator()
,调用UserService.isUserAdmin()
。
当我尝试运行应用程序并以管理员身份登录时,我收到此错误:
com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract boolean com.myapp.client.AsyncServices.AppUserService.IsAdministrator()' threw an unexpected exception: java.lang.VerifyError: Expecting a stackmap frame at branch target 38 in method com.myapp.UserService.AppUser.ValidUser()Z at offset 33
...
Caused by: java.lang.VerifyError: Expecting a stackmap frame at branch target 38 in method com.myapp.UserService.AppUser.ValidUser()Z at offset 33
at com.myapp.server.AppUserServiceImpl.IsAdministrator(AppUserServiceImpl.java:26)
...
有谁知道这个错误意味着什么或如何修复它?
此外,我正在开发google SDK的v1.7。
答案 0 :(得分:2)
当您说管理员时,您的意思是Google App Engine的管理员概念吗?如果是这样,您可以configure this in app.yaml并显着降低复杂性。例如:
handlers:
- url: /admin/*
servlet: com.example.AdminServlet
login: admin
此示例将所有请求路由到/admin/*
并AdminServlet
,并要求用户在显示页面之前成为管理员。