2012-01-24 36 views
3

要定製的JBoss 5.1 web應用程序的根上下文有描述如何將Web應用程序如何在jboss 5.1的戰爭之外定義根環境?

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

這的WEB-INF目錄下添加的jboss-web.xml文件的書面方式很好,但需要修改war文件。

另一種選擇是重命名我的war文件,但我寧願保留包含版本號的原始名稱,這樣就不會滿足在上下文根目錄中需要具有文件夾層次結構的需要(如#記號在deploy文件夾中不受支持)。

我想達到同樣的效果,但不需要修改war文件。我知道tomcat可以通過使用上下文配置來做到這一點,從我的理解來看,jboss 5.1確實包含了tomcat的味道,所以我想知道我們是否可以實現相同的效果。

我發現在jboss.org維基其描述context configuration對於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?任何想法歡迎。

注意:看起來這是commented out of the source code。這可以解釋爲什麼這不被支持,但是還有其他的選擇嗎?

回答

1

我沒有給你答案,但我可以告訴你,JBoss Web服務器絕對不是純粹的Apache Tomcat,並且在Tomcat中可用的一些可能性在JBoss Web服務器中不起作用。其中一個禁用功能還包括在單獨的<Service>元素中不能包含特定的<Valve>元素。

但是,從你的問題來看,從JBoss Web Server的角度來看。在戰爭中,有可能在jboss-web.xml中更改根環境。在Tomcat中,您可以在server.xml中更改它。如果您在jboss-web.xmlserver.xml中更改它,結果的上下文是什麼?這很可能是原因,爲什麼server.xml中的配置被禁用。