如何在jboss 5.1中定义war文件之外的根上下文?

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 configuration,但这对我没有用:尝试添加
 <Context docBase="/path/to/my.war" path="/my/custom/context/root"/>

在启动时,尝试部署/ 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?

这告诉我在Host下不支持Context标记。将Context元素添加到名为deploy/jboss.sar/jboss.web/localhost/my#custom#context#root.xml的文件中不起作用,并且被jboss忽略(尽管我可以看到java进程正在打开该文件)。也许这在jboss 5.1中不可能?欢迎任何想法。注意:看起来这已经被注释掉了源代码。这就解释了为什么不支持,但还有其他选择吗?
1个回答

1

我对你的问题没有答案,但我可以告诉你,JBoss Web Server绝对不是纯粹的Apache Tomcat,而且在Tomcat中可用的一些可能性在JBoss Web Server中不起作用。其中一个被禁用的功能是,在单独的<Service>元素中无法具有特定的<Valve>元素。

但是,就您的问题而言,请从JBoss Web Server的角度考虑。在战争中,有可能在jboss-web.xml中更改根上下文。在Tomcat中,您可以在server.xml中更改它。如果您在jboss-web.xmlserver.xml中都更改了它,将得到什么结果?这很可能是为什么在server.xml中禁用配置的原因。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接