Как разработчик, совершенно новый для Spring и OSGi, и после долгого возвращения в Tomcat, я даже не знаю, могу ли я правильно задать этот вопрос. Но я надеюсь, что кто-то сможет понять, где я застрял, и как я должен действовать.Отправка/пересылка на сервлет, который обслуживает статический контент из другого пакета
Установка включает в себя пакеты Tomcat 7 в контейнере Equinox OSGi. Пучок обеспечивает «MainDispatcherServlet
», который распространяется на org.springframework.web.servlet.DispatcherServlet
. Другие пакеты услуг регистрируют org.springframework.web.servlet.mvc.Controller
экземпляры на доске OSGi, которые прослушивает MainDispatcherServlet
. MainDispatcherServlet
предоставляет API для сопоставления url-шаблонов зарегистрированным контроллерам, который, в свою очередь, использует SimpleUrlHandlerMapping
для идентификации обработчика для отдельных запросов. В пакетах услуг часто реализуется javax GenericServlet
и заверните его в ServletWrappingController
для регистрации.
Эта работа работает гладко. Теперь мне нужно следующие
Статические ресурсы
Отправка в статических ресурсов, таких как изображения и JSPs (не знаю, если они считаются статическими) в этих пучках.
Поиск по SO похоже, что это может быть сделано с помощью магии <mvc:resources>
в комплекте с клиентом, хотя я не совсем понимаю, какой именно xml. Но если я правильно понимаю, запрос не будет проходить через MainDispatcherServlet
, что является требованием.
Таким образом, подход, который я использую сейчас, - использовать org.apache.catalina.servlets.DefaultServlet
и обернуть его в контроллер, как описано выше. Это хороший способ добиться этого? Проблема здесь в том, что DefaultServlet
нуждается в ServletContext
, и у меня нет его, чтобы дать его.
Есть ли простой способ от создать a ServletContext
, который я могу ввести в контроллер?
Вперед статических ресурсов
Кроме того, мне нужно еще Servlet
в том же клиентском пачке, чтобы иметь возможность forward
к JSPs в связке с помощью RequestDispatcher
, дополнительную причину мне нужен полноценный ServletContext
.
В целом, работоспособно (даже если оно не изящно)? И если да, то каким образом я могу создать ServletConteext? Если это не работает, какова альтернатива?
Все это довольно сложно. Хотя я не (не могу :)) попросить реализованный прототип, я буду признателен за более краткий инструктаж вроде «вставить X в Y и обернуть его с помощью Z, и вы все настроены».
Может быть, это поможет вам http://stackoverflow.com/a/3819553/283426 –