![](/img/trans.png)
[英]how to get the inputstream to configuration file lying under web-inf folder in tomcat in java?
[英]How to change the Java webapp 'WEB-INF path' convention under tomcat or jetty
在Java Webapp下,
我想將/ WEB-INF / lib設置為D:/ somepath / lib
和/ WEB-INF / classes到E:/ somepath / classes
和web.xml到F:/somepath/config.xml
如何在tomcat或jetty下配置這些來改變約定?
規范(Java™Servlet規范版本2.3)僅提到標准文件夾:
Web應用程序類加載器必須首先從WEB-INF / classes目錄加載類,然后從WEB-INF / lib目錄中的庫JAR加載類。
使用Tomcat或Jetty,您無法使用“開箱即用”提供的功能:
Tomcat :
WebappX - 為部署在單個Tomcat實例中的每個Web應用程序創建一個類加載器。 Web應用程序的/ WEB-INF / classes目錄中的所有解壓縮的類和資源,以及Web應用程序的/ WEB-INF / lib目錄下的JAR文件中的類和資源,都對此Web應用程序可見,但不是到其他人。
碼頭 :
正常配置是為每個Web上下文(Web應用程序或war文件)提供它自己的類加載器,它具有系統類加載器作為它的父級。 這樣的類加載器層次結構在Java中是正常的,但是servlet規范通過要求以下內容使層次結構復雜化:
WEB-INF / lib或WEB-INF / classes中包含的類優先於父類加載器上的類。 這與java 2類加載器的正常行為相反。
但是,您可以:
干杯
在Unix系統上,您可以通過設置從預期位置到其他磁盤上的位置的軟鏈接來手動執行此操作。
您提到的兩個應用程序服務器都是開源的,因此您可以編寫自己的版本。 我想實現Web應用程序的類加載器的部分是您必須更改的部分。
但是,如果你必須參與這樣的詭計,你應該懷疑你早些時候做出了錯誤的決定。 我認為沒有理由去做你想做的事。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.