2012-05-08 4 views
2

Я новичок в инъекции зависимости w/Spring и сталкиваюсь с кажущимся сложным сценарием.Весна с Джерси + вызов Jetty

Мое приложение получает данные из унаследованной системы поверх простого старого сокета, делает интересные вещи (tm) с данными, а затем использует встроенный экземпляр Jetty для откачки действительно интересных результатов (tm) через веб-сокеты HTML5. Кроме того, на сервере Jetty находится сервлет Джерси, который предоставляет интерфейс RESTful для всего этого интересного материала (tm).

Я бы хотел использовать Spring для добавления общих DAO и объектов обслуживания приложений как в устаревшую сторону, так и в ресурсы Джерси. Для этого требуется, чтобы ApplicationContext был разделен между устаревшими компонентами и Jersey. Кажется, что мне нужно будет создать контекст приложения, подключить его к моим старым компонентам, а затем передать контекст приложения в службу ServletContext в Джерси при настройке встроенного сервера Jetty (который я сейчас делаю программно).

К сожалению, неясно, как я могу передать существующий контекст приложения в Джерси ServletContext. Это можно сделать? Есть ли лучший подход?

Хотелось бы отметить, что это отличается от других вопросов Джерси + Джетти + Весна, которые я нашел на SO, которые не требуют использования контекста приложения, который будет использоваться за пределами Джерси.

ответ

1

Я предполагаю, что ваш код, начинающийся Jetty что-то вроде:

Server server = new Server(...); 
server.setHandler(new WebAppContext(...)); 

Вы можете получить ServletContext от WebAppContext и установить на нем SpringContext:

WebAppContext wac = new WebAppContext(...); 
ServletContext sc = wac.getServletContext(); 
sc.setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, springContext); 
+0

Спасибо, я дам ему выстрел! – HolySamosa

Смежные вопросы