有沒有辦法在tomcat中爲不同的war文件設置不同的環境變量?我正在使用第三方戰爭,並且需要對同一場戰爭進行多次部署,但具有不同的環境變量(因此會加載不同的配置)。tomcat中每次戰爭的不同環境變量
回答
如果您獨立運行兩個Tomcat實例,這很容易。我假設你在談論OS環境變量。
您還可以在每個war/web應用程序的Tomcat中設置屬性。這會讓你在一個Tomcat實例中運行兩場戰爭。但這不是你問的。
是的,我需要將該值設置爲一個操作系統環境變量(真的只需要進入System.getenv)。我可以嘗試設置兩個不同的tomcat(atm只需要兩條不同的路徑),那麼我會在bin/setenv.sh中執行此操作還是有更好的地方? – ekaqu
Tomcat的tcServer版本非常簡單。你將不得不穀歌周圍找出如何與香草雄貓。我可能只是在運行Tomcat的同一實例的inetd中設置兩個shell腳本,但事先設置的環境不同。 –
@ekaqu字面上只是複製和粘貼整個TC目錄 –
好,總瘋狂砍的想法:
實現一個PropertyPlayHolderConfigurer(或使用web.xml文件從Tomcat),爲每個應用程序實例和負荷特性,你有System.properties()同名。
然後,創建一個包含兩組屬性的委託屬性類。然後
Properties props = new DelegatingProperties(app1Props,app2Props)
System.setProperties(delegate);
public class DelegatingProperties extends Properties {
private Properties app1Props;
private Properties app2Props;
public DelegatingProperties(Properties app1Props, Properties app2Props) {
this.app1Props = app1Props;
this.app2Props = app2Props;
}
public String getProperty(String prop) {
// begin crazy science
String caller = new Throwable().getStackTrace()[0].getClassName();
// this is where you get creative.
// Do the System.setProperties() above so you can intercept calls to
//getProperty()
// and find out the FQCN of the library class(es) that need these variable
// (use your debugger).
// then implement the logic here to decide which of the 2 property sets you have
// you will query to get the correct results
}
}
這些系統我們所談論的性質和他們是爲了廣泛的應用系統。你的圖書館可能是在1-app-1-jvm的時候開發的(或者開發者也可能是tard)。
我至少能獲得創意的道具嗎? :)
- 1. Tomcat中的環境變量
- 2. 的Apache Tomcat環境變量
- 3. 環境變量 - Spring,Tomcat
- 4. tomcat可以存儲從戰爭中調用的變量/屬性
- 5. JHipster戰爭不在tomcat中工作?
- 6. Tomcat部署 - Tomcat如何檢測戰爭中的變化?
- 7. JRE_HOME環境變量是不正確的定義,同時起tomcat
- 8. 在Tomcat的Springboot戰爭不起作用
- 9. 在Tomcat中設置環境變量TESSDATA_PREFIX
- 10. 在Tomcat上更新戰爭
- 11. 部署戰爭到Tomcat
- 12. 的Tomcat + Spring和環境變量
- 13. 在戰爭中配置的Tomcat認證
- 14. Tomcat中的戰爭部署錯誤
- 15. Tomcat中兩次戰爭之間的相互通信
- 16. tomcat CATALINA_HOME環境變量問題
- 17. 如何爲tomcat創建環境變量?
- 18. tomcat是否檢測到解壓後的戰爭中的變化?
- 19. 如何在Tomcat中部署戰爭6
- 20. 在嵌入式Tomcat中部署戰爭
- 21. 在同一版本中爲Tomcat創建和部署特定於環境的戰爭版本
- 22. 向Tomcat部署戰爭中的變更部分
- 23. Maven的多戰爭嵌入式Tomcat的
- 24. 的Tomcat 7的戰爭文件部署
- 25. tomcat如何在我的戰爭中找不到庫中的類?
- 26. 部署 「戰爭」 與Tomcat的問題
- 27. 部署戰爭文件的Tomcat錯誤
- 28. Gradle產卵多次戰爭
- 29. Maven戰爭:限制戰爭
- 30. Ijetty部署的戰爭,需要ijetty的環境
它**有**是環境變量還是隻是你表達問題的方式? –
第三方代碼沒有System.getenv,所以它必須在那裏 – ekaqu