У меня есть настройка, где я использую WAR-Extender Pax-Web, чтобы я мог регистрировать сервлеты стандартным образом.Как использовать @WebServlet и @Component в pax-web
Перед использованием WAR-Extender сервлет был синглом, где я смог ввести другие ссылки osgi. С расширителем услуги вводятся из-за XML объявления Declarative-Service, но когда я обращаюсь к Servlet с браузером, новый экземпляр создается без ввода другой службы.
@Component
@SuppressWarnings("serial")
@WebServlet(name="TestServlet", urlPatterns={"/Test"})
public class TestServlet extends HttpServlet{
private UserDataManager userDataManager;
public TestServlet(){
System.out.println("------------------- New Servlet");
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
HttpSession session = req.getSession();
MbsSessionId mbsId = (MbsSessionId)session.getAttribute("MbsSessionId");
UserData userData = userDataManager.getUserData(mbsId);
resp.getOutputStream().println(userData.toString());
}
@Reference
void bindUserDataManager(UserDataManager userDataManager){
this.userDataManager = userDataManager;
}
}
Моя цель - не обращаться к программному обеспечению OSGi-Service-Registry. Есть ли какая-либо конфигурация, поэтому мой сервлет обрабатывается как Singleton или что OSGi-Service повторно вводится?