首页 > 解决方案 > 将另一个 servlet 部署到 wildfly 实例

问题描述

我正在尝试将第二个 Web 应用程序部署到当前托管单个应用程序的 Wildfly 服务器。我对standalone.xml 进行了以下修改(请参阅在 Jboss7 或 Wildfly 上访问多个 Web 应用程序 - 我的需求基本相同):

Under <subsystem xlmns="urn:jboss:domain:undertow:8.0>, added

<server name="dispatch-server">
  <http-listener name="default" socket-binding="dispatch"/>
  <host name="dispatch-host" default-web-module="Dispatch.war" alias="Dispatch.com">
  </host>
</server>

Next, under <socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">, added

<socket-binding name="dispatch" port="${jboss.https.port:8081}"/>

Finally, under <Deployments>, added

<deployment name="Dispatch.war" runtime-name="Dispatch.war">
  <fs-archive path="${jboss.home.dir}/standalone/deployments/Dispatch.war" />
</deployment>

已部署 Dispatch.war 的 web.xml 内容:

<servlet>
  <servlet-name>DispatchServlet</servlet-name>
  <servlet-class>blah.blah.blah.DispatchServlet</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>DispatchServlet</servlet-name>
  <url-pattern>/</url-pattern>
</servlet-mapping>

我编写了一个小应用程序来测试连接到 servlet,使用“ http://localhost:8081 ”,但我得到一个 HTTP 404 错误。我还尝试了“ http://localhost:8081/DispatchServlet ”,没有任何变化。

我发现其他教程提到需要一个与 Dispatch.war 捆绑在一起的 jboss-web.xml 文件,所以我添加了一个看起来像这样的准系统:

<jboss-web>
  <context-root>/</context-root>
</jboss-web>

它并没有影响我所看到的行为。我还尝试将 context-root 更改为“DispatchServlet”,然后点击“ http://localhost:8081/DispatchServlet ”。

有什么明显的我在胡说八道吗?

标签: javaservletsdeploymentwildflywar

解决方案


我认为你把问题复杂化了。如果您想部署多个 Web 应用程序,只需在部署目录中放置耳战。当他们部署日志时会显示他们的上下文路径,然后访问与该路径相关的任何内容,例如

/war1/DispatchServlet /war2/DispatchServlet

如果使用不同的路径是不可接受的,那么为了按照您的尝试进行操作,您需要按照说明如何使用 ROOT.war 文件以及对standalone-full.xml 的相关更改来禁用内置默认值的指南进行操作


推荐阅读