1

我在 JBOSS 中部署了一个应用程序,它的访问方式为: localhost/appname 当我只输入 IP 地址时,我会被重定向到 JBOSS 默认页面。有没有一种无需提供 /appname 即可访问应用程序主页的方法?

我希望这个问题很清楚。提前致谢。

4

3 回答 3

2

您必须将应用程序部署在名为“ROOT.war”的文件中。您还必须删除部署目录中现有的 ROOT.war。

于 2012-11-06T19:20:56.930 回答
2

作为 Nightsorrow 提供的解决方案的一部分,您还可以使用 WEB-INF/jboss-web.xml 文件的 context-root 标记定义 Web 应用程序的上下文根。因此将其定义为'/',您可以保留原始文件名。这样您就可以覆盖 JBoss 的默认行为,即将 Web 应用程序的上下文根定义为应用程序的文件名(除非应用程序名称是 ROOT.war,其默认上下文是“/”)。

所以 jboss-web.xml 文件看起来类似于:

<jboss-web>
   ... other tags ...
   <context-root>/</context-root>
   ... other tags ...
</jboss-web>

请注意,不能有两个应用程序具有相同的上下文根,因此首先您必须删除 ROOT.war,或者按照相同的过程更改其上下文根:

  • 将 context-root 标签添加到 jboss-web.xml(例如:<context-root>/oldRoot</context-root>,这将使旧的 ROOT.war 应用程序可以通过 localhost/oldRoot 使用),或者
  • 只是更改其文件名。

如果您想部署一个内部带有 web 模块 (war) 的 EAR 文件(而不仅仅是一个普通的 war 文件),您必须使用 EAR 的 META-INF/application.xml。以这种方式定义 Web 模块:

<application>
        ... other tags and other modules (ejb, web ...) ...
    <module>
        <web>
            <web-uri>nameOfYourWarFile.war</web-uri>
            <context-root>/</context-root>
        </web>
    </module>
        ... other tags and other modules (ejb, web ...) ... 
</application>
于 2012-11-06T22:13:26.700 回答
-2

我正在使用eap6。这是我第一次使用jboss。我没有看到我有 $JBOSS_HOME/server。我看到了 $JBOSS_HOME/domain/server。我已经搜索了 $JBOSS_HOME 下的所有文件。我找不到任何 WEB-INF 和 jboss-web.xml

于 2014-09-10T14:40:13.710 回答