2013-02-20 80 views
3

在部署之後更改app.xml中的web.xml(或者其他文件)是否明智?所有的應用程序服務器是否公開其部署/目錄結構部署後更改web.xml

我寧願在本地進行更改,重新構建戰爭(或.ear等),然後重新部署應用程序。

任何建議/評論。謝謝。

回答

2

關於你的第一個問題,它取決於資源的類型。對於類路徑資源,可以覆蓋應用程序服務器的類加載機制中具有較高優先級的任何目錄中的文件(例如,如果使用Tomcat,則爲$ CATALINA_HOME/lib)。對於像xml文件這樣的xml文件,您可以用絕對路徑在打包文件中聲明外部實體,但必須確保文件將存在於目標服務器上。例如,打包的web.xml文件可能看起來像:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE document [ 
<!ENTITY webEntity SYSTEM 'C:\Temp\web.xml'> 
]> 
&webEntity; 

所以web.xml中的實際內容是文件C的內容:\ TEMP \ web.xml中。

總之,沒有官方的方式來做到這一點,但有一些技巧。我想,人們所做的是爲每個生產站點生成一個自定義軟件包。有多種方式可以通過Maven像戰爭覆蓋或分類器一樣自動化。這裏是an interesting link

關於你的第二個問題,我不會依賴這個假設。修改Tomcat服務器上的分解資源非常簡單,但在JBoss AS上並不那麼簡單。

問候

+0

@BalusC注意這裏:http://stackoverflow.com/questions/25928486/tomcat-include-another-xml-file-to-web-xml該實體的做法是一個XXE漏洞,是計劃修補。我絕對不會走這條路。 https://bugzilla.redhat.com/show_bug.cgi?id=1069911 – JoshC13 2015-09-02 19:48:40