Открытие сеанса вызывает 500 внутренних ошибок сервера - PullRequest
0 голосов
/ 27 января 2019

Я пытаюсь использовать сервлет входа в систему для проверки информации для входа в мое угловое веб-приложение.Однако, когда я делаю почтовый запрос, я получаю внутреннюю ошибку сервера 500.

Вот мой doPost в моем логине сервлета:

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    ERS_Users user = new ObjectMapper().readValue(req.getInputStream(), ERS_Users.class);

    System.out.println(user);

    if(user == null) {

        System.out.println("inside the first if");
        resp.setStatus(400);
        resp.getWriter().write("No data submitted");
        return;
    } else {
        // authenticate user with database
        System.out.println("Inside the first else");
        user = launcher.authUser(user);

        if(user != null) {
            // everything is good send auth data
            System.out.println("inside the second if");
            resp.setStatus(200);
            resp.getWriter().write(new ObjectMapper().writeValueAsString(user));
            return;
        }
    }

    resp.setStatus(401);
    resp.getWriter().write("Email or password was incorrect");
}

Я использовал system.out.println, чтобы попытаться найти проблему,Когда угловое приложение отправляет электронное письмо и пароль этому сервлету, «внутри первого» печатается до достижения метода authUser.

Вот метод authUser:

public ERS_Users authUser(ERS_Users authUser) {

    ERS_Users u = getUserbyUsername(authUser.getEmail());

    if (u!= null ) {
        if (u.getPassword().equals(authUser.getPassword())) {
            u.setPassword("");
        }else {
            u = null;
        }
    }

    return u;
}

public ERS_Users getUserbyUsername(String authUser) {
    System.out.println("inside getuserbyusername");
    Session session = sessionFactory.openSession();
    System.out.println("inside getuserbyusername2");


    Transaction tx = session.beginTransaction();

    List<ERS_Users> u = null;
    String hql = "From Users where ERS_EMAIL =: username";
    NativeQuery q = session.createNativeQuery(hql);
    q.setParameter("username", authUser);
    u=q.getResultList();
    ERS_Users users= null;
    if(!u.isEmpty()){
        // ignores multiple results
        users= u.get(0);
    }
    session.close();
    return users;
}

"внутриgetuserbyusername "- это последнее, что печатается перед тем, как возникает ошибка при открытии сеанса:

Session session = sessionFactory.openSession();

Самый близкий ответ, который я видел, был Ошибка 500 из-за сеанса

Однако я ясно создал сессию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...