我正在运行 JBOSS AS 7.1.1 服务器和单独的 apache Web 服务器。我在 JBoss 服务器上有两个 EAR 部署,每个部署在 Web 服务器上都有一个 apache 虚拟主机配置。一个有效,另一个无效。两种部署都使用 RESTEasy(尽管我认为这不是问题所在),并且都使用 jboss-server:8080 接口。
在我看来,最显着的区别是一个使用 2.4 版本,另一个使用新的 3.0 版本。
这是 2.4 版的网络应用程序,工作部署:
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
 version="2.4">
  <display-name>Sokoban Mobile WAR</display-name>
  <servlet-mapping>
    <servlet-name>javax.ws.rs.core.Application</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping>
</web-app>
这是不工作的 3.0 部署:
<web-app
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0" >
  <display-name>Voyager Web Application</display-name>
  <listener>
    <listener-class>
      org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap
    </listener-class>
  </listener>
  <servlet>
    <servlet-name>Resteasy</servlet-name>
    <servlet-class>
      org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
    </servlet-class>
    <init-param>
      <param-name>
    javax.ws.rs.Application
      </param-name>
      <param-value>
    com.nutrastat.voyager.web.VoyagerApplication
      </param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>Resteasy</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping>
</web-app>
两种部署都有一个 jboss-web,看起来像这样:
<?xml version="1.0"?>
<jboss-web>
  <context-root>/dir</context-root>
</jboss-web>
dir替换为 apache 设置中配置的适当上下文。
那么使用 3.0 版本的 web-app 部署需要做什么呢?
谢谢你的帮助