0

私はあなたが管理者である場合にのみロードされるグーグルアプリを開発しています。これが私がやろうとしていることの例です。

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)
    ...

このエラーの意味や修正方法を知っている人はいますか?

また、私はグーグルのSDKのv1.7で開発しています。

4

1 に答える 1

2

管理者とは、Google App Engineの管理者の概念を意味しますか?その場合、app.yamlでこれを構成し、複雑さを大幅に軽減できます。例えば:

handlers:

- url: /admin/*
  servlet: com.example.AdminServlet
  login: admin

この例では、すべてのリクエストを/admin/*にルーティングしAdminServlet、ページを表示する前にユーザーが管理者である必要があります。

于 2012-07-21T00:25:10.450 に答える