2017-07-06 17 views
-1

エンティティ:なぜリクエスト処理に失敗しましたか。ネストされた例外はorg.jboss.resteasy.spiですか?

@Entity 
@Table(name = "register") 
public class Register{ 

@Id 
@GeneratedValue 
@Column(name = "id" , columnDefinition = "LONGVARBINARY") 
private Long id; 
@Column(name = "emp_id") 
private String empId; 
@Column(name="password") 
private String pass="password"; 
//setters & Getters 

コントローラー:

@Controller 
@Path("Service") 
public class RegCapController { 

@Autowired 
private RegcapServiceI regCapService; 

LoggerFactory.getLogger(LoginController.class); 
static final Logger logger = Logger.getLogger(RegCapController.class); 

@POST 
@Path("loginRegistration") 
@ResponseStatus(value = HttpStatus.OK) 
@Consumes({MediaType.APPLICATION_JSON}) 
@Produces({MediaType.APPLICATION_JSON}) 
public @ResponseBody 
Status checkLogin(@RequestBody Register empId , Register pass) { 
    boolean userExists = regCapService.checkLogin(empId , pass); 

    if(userExists){ 

     return new Status("User Exist !!!!"); 

    } else { 

     return new Status("User not Exist !...."); 
    } 
} 

サービス:

@JsonIgnoreProperties(ignoreUnknown = true) 
@Service 
public class RegCapServiceImpl implements RegcapServiceI { 
@Autowired 
private RegCapDao regCapDao; 
@Override 
public boolean checkLogin(Register empId , Register pass) { 
    System.out.println("In Service class...Check Login"); 
    return regCapDao.checkLogin(empId , pass); 
    } 
} 

DAOImpl

@Repository("regCapDao") 
public class RegCapDaoImpl implements RegCapDao{ 
@Autowired 
private SessionFactory sessionFactory; 
Session session = null; 
Transaction tx = null; 
public SessionFactory getSessionFactory() { 
    return sessionFactory; 
} 
public void setSessionFactory(SessionFactory sessionFactory) { 
    this.sessionFactory = sessionFactory; 
} 
@Override 
public boolean checkLogin(Register empId , Register pass) { 
    System.out.println("In Check login"); 
    Session session = sessionFactory.openSession(); 
    boolean userFound = false; 
    String SQL_QUERY ="from Register reg where reg.empId=? and reg.pass=?"; 
    Query query = session.createQuery(SQL_QUERY);  
    query.setParameter(0,empId.getEmpId()); 
    query.setParameter(1,pass.getPass()); 
    List<Register> list = new ArrayList<Register>(); 
    list = query.list(); 
    if ((list != null) && (list.size() > 0)) {  
     userFound= true; 
     System.out.println("AAA"+userFound); 
    } 
    session.close(); 
    return userFound;  
    } 
} 

エラーが

です

2017年7月6日11時36分29秒AM org.apache.catalina.core.StandardWrapperValve 重度を呼び出す:のServlet.service()サーブレットのパスに関連して[コンテキスト] [/ PAV] は例外をスロー[リクエスト処理に失敗しました。ネストされた例外はある org.jboss.resteasy.spi.UnhandledException:java.lang.NullPointerExceptionが]日でcom.dao.RegCapDaoImpl.checkLogin(RegCapDaoImpl.java:94) で 根本原因 java.lang.NullPointerExceptionが と .reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド)java.lang.reflect.Method.invokeでsun.reflect.DelegatingMethodAccessorImpl.invoke(不明なソース) でsun.reflect.NativeMethodAccessorImpl.invoke(不明なソース) で (不明なソース)

ありがとうございました

+0

RegCapDaoImpl.javaファイルの94行目にNullPointerExceptionがあります。問題が発生している可能性があります。 – Cristina

答えて

0

は最終的に私は解決策..... を取得ここで私は、コントローラ内の

を変更しています: - サービスクラスで

@POST 
@Path("loginRegistration") 
@ResponseStatus(value = HttpStatus.OK) 
@Consumes({MediaType.APPLICATION_JSON}) 
@Produces({MediaType.APPLICATION_JSON}) 
public ResponseEntity checkLogin(Register regInfo) { 

    boolean userExists = regCapService.checkLogin(regInfo); 

    if(userExists){ 

     return new ResponseEntity(HttpStatus.OK); 
    }else{ 

     return new ResponseEntity(HttpStatus.NOT_FOUND); 
    } 
    } 

: - ダオクラスで

@Override 
public boolean checkLogin(Register regInfo) { 
    return regCapDao.checkLogin(regInfo); 
} 

: -

@Override 
public boolean checkLogin(Register regInfo) { 
    Session session = sessionFactory.openSession(); 
    boolean userFound = false; 
    String SQL_QUERY ="from Register reg where reg.empId=? and reg.pass=?"; 
    Query query = session.createQuery(SQL_QUERY); 
    query.setParameter(0,regInfo.getEmpId()); 
    System.out.println("id::"+regInfo.getEmpId()); 
    System.out.println("pass::"+regInfo.getPass()); 
    query.setParameter(1,regInfo.getPass()); 

    List<Register> list = new ArrayList<Register>(); 
    list = query.list(); 

    if ((list != null) && (list.size() > 0)) { 

     userFound= true; 
     System.out.println("AAA"+userFound); 
    } 
    session.close(); 
    return userFound;  

} 

また、私はこれらの対応で変更されていますdingインターフェイスも。そして最終的に成功を収めてくれ...。

関連する問題