У меня есть много веб-сервисов REST, разработанных с помощью CXF и управляемых в контейнере весеннего приложения, и мне было поручено создать сервлет, который создаст объект сеанса, который будет хранить атрибуты, которые будут прочитаны в службах Jax-RS ,Как добавить сервлет сеанса/входа, чтобы получить объект сеанса для бэкэнд Spring-Apache CXF?
Я попытался просто добавить простой сервлет JEE для сбора параметров и создания объекта сеанса, но тогда я не мог понять, как вводить этот объект сеанса для использования во всем приложении. Я также попытался добавить Spring-mvc и springweb в приложение и использовать диспетчерский сервлет, который должен облегчить получение объекта сеанса в каждом из бэндов webservice. Добавление двух зависимостей для простого сервлета кажется излишним, и, кроме того, spring-mvc, похоже, не играет хорошо с Jax-RS, путь «/ rest /», в котором у меня были все сервисы, запущенные раньше, кажется, by spring-mvc (jax-rs больше не может инициализировать конечные точки на этом пути), хотя я использую совершенно другой путь для сеансового сервлета.
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
@RequestMapping("/session")
public class SessionController {
@RequestMapping(method = RequestMethod.GET)
public String doGet(ModelMap model) {
return "sessionPage";
}
@RequestMapping(method = RequestMethod.POST)
public String doPost(ModelMap model) {
return "redirect:mainpage";
}
}
На данный момент интерфейс находится в React.js, все взаимодействия с бэкэнд являются через REST службы вызовов. Я пытаюсь добавить страницу «входа» в JSP, это еще не страница входа в систему, ей просто нужно получить userId на данный момент и сделать доступным для бэкэнд.
import org.apache.cxf.Bus;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.ImportResource;
@Configuration
@ImportResource({"classpath:META-INF/cxf/cxf.xml", "classpath:META- INF/cxf /cxf-servlet.xml"})
public class CXFSetup {
@Autowired
private Bus cxfBus;
}