У меня есть три разных сервера под управлением Tomcat 7. Я использую JDK 7 и Spring framework.
В моей среде разработки и производства все работает гладко, однако на третьей машине я сталкиваюсь с проблемой обнаружения сеансов.
На третьем сервере начальная страница открывается нормально, но следующая строка кода возвращает 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 является null, и он не может обнаружить сеанс, который я ранее установил с
HttpSession httpsession = request.getSession(true);
Помимо этого, во всем моем проекте просьба.getSession (false) возвращает null, даже если сеанс был ранее установлен.
Я не уверен, если я пропускаю что-то, так как тот же код прекрасно работает на двух других серверах. Любая помощь / руководство / предложения будут высоко оценены.
Вы можете просто объявить сеанс HTTP в методе запроса Spring MVC
Не уверен, соответствует ли он вашим требованиям или нет. Я сделал это для своего проекта.