2016-12-28 5 views
0

У меня есть три разных сервера под управлением Tomcat 7. Я использую JDK 7 и Spring.request.getSession (false), не обнаруживающий предыдущий сеанс

В моей среде разработки и производства все работает плавно, однако на третьей машине я столкнулся с проблемой обнаружения сеансов.

На третьем сервере начальная страница открывается нормально, но следующая строка кода возвращает значение null.

@RequestMapping(value="/getCaptcha",method=RequestMethod.POST) 
    public @ResponseBody OutputStream getCaptchaImage(HttpServletRequest request, HttpServletResponse response) throws IOException{ 

    String stToken = request.getParameter("token"); 
    OutputStream os = null; 

    try{ 
     HttpSession httpsession = request.getSession(false); 
     System.out.println("HttpSession: "+httpsession); 
     if(httpsession != null){ 
      ... 
     } 
    } 
    catch(Exception e){ 
     e.printStackTrace(); 
    } 

    return os; 
} 

Здесь HttpSession является недействительным и не может обнаружить сессию я установлена ​​с

HttpSession httpsession = request.getSession(true); 

Помимо этого, во всем моем проекте request.getSession (ложь) возвращает нуль, хотя сессии был ранее установлен.

Я не уверен, что у меня что-то не хватает, поскольку тот же код отлично работает на двух других серверах. Любая помощь/руководство/предложения будут высоко оценены.

+0

Просто попробуйте request.getSession(), чтобы получить сеанс. – user1211

+0

@ user1211 request.getSession() создаст новый сеанс, если сеанс не существует. Это не то, что он просил. – Chinmay

+0

@Chinmay правильно, я пытаюсь получить мою существующую сессию. –

ответ

0

Вы можете просто объявить HTTP сессию в методе запроса на Spring MVC

@RequestMapping("/signup") 
public void handleMyRequest(HttpSession session, ...) { 
    ... 
} 

Не уверен, подходит ли это в ваши требования или нет. Я сделал это для своего проекта.

+0

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

Смежные вопросы