如何在一个ROOT tomcat webapp中部署hawtio作为servlet

时间:2014-01-16 20:40:48

标签: tomcat servlets hawtio

我有一个在Tomcat6实例的ROOT上下文中运行的webapp。我想在这个webapp上添加一个hawtio控制台,可以通过子路径访问。也就是说,我希望http://myserver:8080仍然是我的webapp,但http://myserver:8080/hawtio打开hawtio控制台。

我知道我可以将hawtio.war文件复制到$TOMCAT_HOME\webapps,这样我就可以了。唉,我不想部署两个单独的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类的war文件。

接下来,我需要将hawtio servlet映射到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 servlet类,我可以在这种情况下使用?

我在各种hawtio包中看到了一堆hawtio servlet,但它们似乎都是子servlet,而不是主要的。

我错过了什么?

1 个答案:

答案 0 :(得分:2)

将hawtio与WAR结合起来应该有效(提供与JS库,CSS,图像或HTML文件等没有冲突)。

然而,如果你依赖另一个WAR,maven-war-plugin并没有组合web.xml文件;因此我建议您从hawtio复制web.xml:https://github.com/hawtio/hawtio/blob/master/hawtio-web/src/main/webapp/WEB-INF/web.xml#L9并将自己的内容添加到其中。

有一天,当hawtio进入Servlet 3.0时 - 我们会使用注释,事情会更容易结合;不利的一面是我们试图让hawtio到处运行;所以我们不能很快假设Servlet 3