tomcat - 如何将 hawtio 部署为 ROOT tomcat webapp 中的 servlet

标签 tomcat servlets hawtio

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

我知道我可以将 hawtio.war 文件复制到 $TOMCAT_HOME\webapps 中,这样我就可以完成很多工作了。唉,我不想部署两个单独的 Web 应用程序,而是只部署一个,然后让 hawtio 来搭便车。

我首先在我的 pom.xml 中添加 hawtio 作为依赖项,如下所示:

<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 而不是主要 servlet。

我错过了什么?

最佳答案

将 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

关于tomcat - 如何将 hawtio 部署为 ROOT tomcat webapp 中的 servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21172413/

相关文章:

java - 以编程方式创建 Java Web 应用程序

java - Tomcat/Linux 上的 UTF-8 和 Servlet

java - 如何为UMASK设置tomcat 7环境变量?

mysql - servlet 连接到远程 mysql

Java servlet 不写入响应字节

apache-camel - Hawtio 中未显示 Camel 路线(选项卡)

java - 使用 Hawtio 时的 org.eclipse.jgit.errors.LockFailedException

tomcat - 通过 TomCat 身份验证在 Hawtio 中启用用户角色

java - 导出到 jar 后的 eclipse 项目不起作用

java - JSP 页面使用的类的安全性如何?