3

要在 jboss 5.1 中自定义 web 应用程序的根上下文,有一个文档化的方式来描述如何在 web 应用程序的 WEB-INF 目录下添加 jboss-web.xml 文件

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

这很好用,但需要修改war文件。

另一种选择是重命名我的war文件,但我宁愿保留包含版本号的原始名称,这不能满足在上下文根中具有文件夹层次结构的需要(因为不支持#符号文件夹中deploy)。

我想实现相同但不修改war文件。我知道tomcat可以通过使用上下文配置来做到这一点,据我所知,jboss 5.1确实包含了tomcat的味道,所以我想知道我们是否可以达到同样的效果。

我在 jboss.org wiki 上找到了这个页面,它描述了各种版本的 jboss 和 tomcat 的上下文配置,但这对我不起作用:试图添加

 <Context docBase="/path/to/my.war" path="/my/custom/context/root"/>

在启动时deploy/jboss.sar/server.xml 生成错误:

 org.jboss.xb.binding.JBossXBException: Failed to parse source: Context not found as a child of Host in unordered_sequence: Listener* Valve* Alias* Realm? attributes?

这告诉我Context不支持标签Host

Context元素添加到一个名为的文件deploy/jboss.sar/jboss.web/localhost/my#custom#context#root.xml中不会做任何事情,并且被 jboss 忽略(尽管我可以看到该文件正在被 java 进程打开)。

也许这对于 jboss 5.1 是不可能的?欢迎任何想法。

注意:看起来这已经从源代码中注释掉了。这可以解释为什么不支持这一点,但还有其他选择吗?

4

1 回答 1

1

我没有答案,但我可以告诉你 JBoss Web Server 绝对不是纯粹的 Apache Tomcat,而且 Tomcat 中可用的一些可能性在 JBoss Web Server 中不起作用。这些禁用的功能之一也是您不能<Valve>在单独的元素中包含特定元素<Service>

但是,对于您的问题,请从 JBoss Web Server 的角度来考虑。在战争中,有可能改变jboss-web.xml. 在 Tomcat 中,您可以将其更改为server.xml. 如果在jboss-web.xml和中同时更改它,结果会是什么server.xmlserver.xml这很可能是禁用配置的原因。

于 2012-03-08T09:58:18.987 回答