2014-01-16 3 views
1

У меня есть webapp, который работает в контексте ROOT экземпляра Tomcat6. Я хотел бы добавить консоль hawtio в этот webapp, доступный через дополнительный путь. То есть, я бы хотел, чтобы http://myserver:8080 по-прежнему был моим webapp, но http://myserver:8080/hawtio, чтобы открыть консоль hawtio.Как развернуть hawtio как сервлет внутри ROOT tomcat webapp

Я знаю, что могу просто скопировать файл hawtio.war на номер $TOMCAT_HOME\webapps, и это меня доставит. Увы, я не хочу разворачивать два отдельных веб-приложения, но вместо этого просто разворачиваю их, и у вас есть hawtio для поездки.

Я начал добавлять hawtio как зависимость в моем pom.xml так:

<dependency> 
    <groupId>io.hawt</groupId> 
    <artifactId>hawtio-default-offline</artifactId> 
    <version>1.2.2</version> 
    <type>war</type> 
</dependency> 

Пара, что с моей сборки скриптов и у меня есть военный файл, содержащий все необходимые hawtio классов.

Далее, мне нужно отобразить сервлет hawtio на мой подпуть в web.xml. Может быть, так:

<servlet> 
    <servlet-name>HawtioServlet</servlet-name> 
    <servlet-class>THIS-IS-MY-QUESTION</servlet-class> 
    <load-on-startup>3</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>HawtioServlet</servlet-name> 
    <url-pattern>/hawtio/*</url-pattern> 
</servlet-mapping> 

И вот где мне нужен мой вопрос. Что такое класс сервлетов hawtio, который я могу использовать в этом случае?

Я вижу кучу сервлетов hawtio в различных пакетах hawtio, но все они выглядят как сервлеты, а не основной.

Что мне не хватает?

+0

Зачем вы хотите это сделать? ИМХО лучше иметь hawtio как разделенный, так как вы можете иметь независимые обновления и еще много чего. например, просто обновите приложение без обновления hawtio и наоборот –

+0

Развертывание службы является нетривиальным в нашей производственной среде. Добавление зависимостей к файлу pom плюс обновление файла web.xml было бы намного проще и практичнее. Это также не является беспрецедентным. У зависимости Jolokia есть агент, который работает именно таким образом. Мое предположение заключалось в том, что у hawtio будет такой же механизм. –

+1

объединение hawtio с вашей WAR должно работать, но я бы скопировал весь web-файл hawtio-web в вашу войну; там есть довольно много вещей ... https://github.com/hawtio/hawtio/blob/master/hawtio-web/src/main/webapp/WEB-INF/web.xml#L9 –

ответ

3

Объединение hawtio с вашей WAR должно работать (при условии, что нет столкновений с библиотеками JS, CSS, изображениями или файлами HTML и т. Д.).

Однако maven-war-plugin не объединяет файлы web.xml, если вы зависите от другой WAR; поэтому я бы рекомендовал скопировать web.xml из hawtio: https://github.com/hawtio/hawtio/blob/master/hawtio-web/src/main/webapp/WEB-INF/web.xml#L9 и добавить в него свои собственные материалы.

Однажды, когда hawtio отправляется Servlet 3.0 - мы будем использовать аннотации, и все будет намного проще комбинировать; недостатком является то, что мы пытаемся заставить hawtio работать везде; поэтому мы не можем принять Servlet 3 в ближайшее время

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