2013-09-04 3 views
0

JBoss seam을 사용하여 개발 된 웹 응용 프로그램의 프론트 엔드에서 작업하고 있습니다. 사용자 로그인시 NullPointerException이 발생하지만 어떻게되는지는 알 수 없습니다. 다음은 로그를 기반으로 한 요약입니다. Identity.getCredentials throw NullPointerException

사용자가 로그인을 시도

의 LoginBean에서 인증 할 방법은 아직도 자격 증명이 코드에서 신원 객체의 속성에 액세스 할 수 있습니다
public class LoginBean{ 
      //both from org.jboss.seam.security package 
      @In 
      private Credentials credentials 

      @In 
      private Identity identity 

      public boolean authenticate(){ 
        ... 

        //false 
        logger.info(identity.getCredential null? == " + identity.getCredential==null); 

        //this returns true 
        result = webAuthentication.login(credential.getUsername(), credential.getPassword()); 

        return result; 
      } 
    } 

을 실행했다. 인증을 실행 한 후, 로그는 다른 클래스의 메소드가 실행되었음을 보여줍니다.
public class LoginControllerBean{ 
      @In 
      private Identity identity; //org.jboss.seam.security 

      @Observer("org.jboss.seam.security.loginSuccessful") 
      @Begin(join = true) 
      public void updateSessionUserStats(){ 
        //i can still see this in the log 
        logger.info("Login successful. updating sessionUserInfo...."); 

        //throws NullPointerException 
        logger.info("check identity.getCredential if null == " + identity.getCredential()); 


        sessionUser = new SessionUser(); 
        //if I remove the log above this call will throw NullPointerException       
        sessionUser.setUsername(identity.getCredentials().getUsername()); 
      } 

    } 

은 내가 @Observer(...loginSuccessful) 주석과 방법은 바로 인증하고 이후에 실행 되었기 때문에 로그인이 성공한다고 가정.

두 번째 클래스의 ID 개체는 모두 @In annotation.에 의해 삽입됩니다. identity.getCredentials() throws nullPointerException은 두 번째 코드에서 첫 번째 코드가 정상인 이유는 무엇입니까? 무엇이 원인이 될 수 있습니까? dentity.getCredentials() throwing nullPointerException? 죄송합니다. 문제에 대해 자세히 설명 할 수 없으면 죄송합니다. 프런트 엔드 코드에만 액세스 할 수 있습니다. 감사합니다. 당신이 null 이외의 사용 받아보실 수 있도록하려면

+0

정체성 당신이 NullPointerException이있어 그래서 널 – newuser

답변

0

@In(create=true) 
    private Identity identity