У меня есть существующее приложение Spring с моим собственным контекстом, которое загружается из десятков XML-файлов Spring. Веб-сервер Grizzly запущен для публикации сервисов Soap.
Теперь я хотел бы также обслуживать Rest-запросы от того же Grizzly. Я использую jersey-spring3, но он запускает собственный, отдельный контекст приложения из требуемого applicationContext.xml.
Это код, который создает Grizzly HttpServer, где зарегистрированы веб-сервисы Rest и Soap:
//rest services
ResourceConfig resourceConfig = new ResourceConfig(
RestService1.class, //these are
RestService2.class //jersey-spring services
);
HttpServer httpServer = GrizzlyHttpServerFactory.createHttpServer(URI.create("http://localhost:8080/rest"), resourceConfig, false);
//soap services
HttpHandler httpHandler = new JaxwsHandler(mySoapWebService, false);
httpServer.getServerConfiguration().addHttpHandler(httpHandler, myPath);
httpServer.start();
Мои сервисы Rest (созданные вторым контекстом Spring) имеют зависимости внедрения от первого контекста приложения. Эти инъекции явно не работают. В настоящее время я сам ввожу их вручную с помощью какого-то хакерского кода.
Как правильно внедрить службы Spring для обработки запросов Rest в существующее приложение, где джерси повторно использует существующий контекст?