将另一个 servlet 部署到 wildfly 实例

Deploying another servlet to a wildfly instance

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

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>

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

<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", but I get an HTTP 404 error. I've tried additionally with "http://localhost:8081/DispatchServlet”,没有任何更改。

我发现其他教程提到需要 jboss-web.xml 与 Dispatch.war 捆绑在一起的文件,因此我添加了一个准系统,如下所示:

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

它没有影响我看到的行为。我还尝试将上下文根更改为 "DispatchServlet" 然后点击“http://localhost:8081/DispatchServlet”什么都不做。

有什么明显的我在胡闹吗?

我认为你把问题复杂化了。如果要部署多个 Web 应用程序,只需将 ear war 放入部署目录即可。当他们部署日志时显示他们的上下文路径,然后访问与该路径相关的任何内容,例如

/war1/DispatchServlet /war2/DispatchServlet

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