Spring Framework, как загрузить сессию в другом проекте - PullRequest
2 голосов
/ 30 октября 2011

У меня есть проект. В первом проекте я установил сессию

в моем первом проекте я поставил здесь код

req.getSession().setAttribute("x", name);
return "ses";

Во втором проекте я положил сюда

model.addAttribute("ses", req.getSession().getAttribute("x"));
return "oses";

, но сессия не появляется.

Как сделать так, чтобы сессия появлялась в другом проекте с помощью Spring Framework?

Ответы [ 2 ]

1 голос
/ 30 октября 2011

Вы не можете. (Что ж, возможно, вы можете настроить своего рода репликацию сеанса, но вам не следует этого делать. См. Связанный вопрос )

Вы должны использовать другие формы связи между вашими приложениями. Процесс будет более сложным и будет включать обмен токенами через (простые) веб-службы, но это лучше, чем полагаться на контейнер сервера и на тот факт, что оба приложения будут выполняться в одном контейнере.

0 голосов
/ 30 октября 2011

Было бы полезно описать то, что вы на самом деле пытаетесь достичь;как говорит Божо, вы не можете на самом деле делиться объектами сеанса между приложениями.

Однако вы можете использовать JMS (или любую другую связь внутри приложения) для отправки данных из одного приложения в другое.Вам все еще понадобится возможность решить, что делать с этими данными, как только вы получите их в принимающем приложении: как связать их с данным пользователем, как я могу получить их в сеансе этого пользователя,и так далее.

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

Как только вы это получите, остальное - механика;Есть интересные игры, в которые можно поиграть, и это легко испортить:)

...