0

SmartGWT ライブラリで GWT を使用してアプリケーションを作成し、これを JBoss サーバーにデプロイします。ユーザーを認証するために、JPA Entity と ManagerBean を作成しました。しかし、この ManagerBean で EntityManager を使用しようとすると、NullPointerException が発生します。EntityManager は他のすべてのクラスで機能しますが、AppUser クラスでは機能しません。

AppUserManagerBean からのコード:

@PersistenceContext(unitName = "test")
private EntityManager em;

private Logger logger = Logger.getLogger("be.test.server.AppUserManagerBean");

public boolean checkUser(String username,String password){

    logger.info("ENTITY MANAGER: " + em.toString());
    AppUser user = null;
    Query query = em.createQuery("SELECT OBJECT(a) FROM AppUser a WHERE a.username = :username AND a.password = :password");
    query.setParameter("username", username);
    query.setParameter("password", password);

エラーログ:

java.lang.NullPointerException
    be.test.server.auth.AppUserManagerBean.checkUser(AppUserManagerBean.java:23)
    be.test.server.auth.CustomAuthenticationProvider.authenticate(CustomAuthenticationProvider.java:29)
    org.springframework.security.authentication.ProviderManager.doAuthentication(ProviderManager.java:130)
    org.springframework.security.authentication.AbstractAuthenticationManager.authenticate(AbstractAuthenticationManager.java:48)
    org.springframework.security.authentication.ProviderManager.doAuthentication(ProviderManager.java:148)
    org.springframework.security.authentication.AbstractAuthenticationManager.authenticate(AbstractAuthenticationManager.java:48)
    org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter.attemptAuthentication(UsernamePasswordAuthenticationFilter.java:97)
    org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
    org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
    org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
    org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169)
    org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
    org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)

これではおそらく十分な情報が得られないことは承知していますので、コメント欄でお気軽にお問い合わせください。

前もって感謝します。

4

1 に答える 1

2

AppUserManagerBean も自分ではなくコンテナによってインスタンス化されていることを確認してください。

于 2013-03-18T10:12:25.047 に答える