2013-12-12 62 views
0

我需要的是非常簡單的,但這裏發佈的解決方案並不適用於我的具體情況。 看起來有可能得到catalina.base,並且從/webapps/<application_name>可以猜出你的應用程序目錄。如何在Tomcat中獲取應用程序路徑(而不是從Servlet上下文)

正如問題標題中已經指出的,我不是在Servlet上下文中,而是在普通的類中。

我認爲這在大多數情況下在標準的Tomcat安裝中起作用。但是從一個IDE中,目錄都是分開的(源代碼,構建,catalina庫等),它並不真正起作用。例如,在NetBeans中,catalina.base不在應用程序所在的位置。

我想要的是能夠猜測應用程序目錄以便猜測它的日誌文件subdir。所以在我的本地環境(NetBeans)中,我有/ webapps/App/logs以及其他地方我也會有/ webapps/App/logs。

我似乎無法找到的東西是獲取「whateverdir」的可靠方法。有任何想法嗎?

+0

在側面說明。除非您希望它們公開,否則我不會將您的日誌放在應用程序下的目錄中。 –

+0

我也不會。但是我必須這樣做,因爲它是這裏的webapps的標準,我沒有真正的發言權。 :( –

回答

1

試試這個:

  1. 定義加載在啓動一個servlet。在其init()方法中,使用「catalina.base」方法來獲取目錄。
  2. 獲取目錄後,將該值保存在系統屬性中。
  3. 然後在您的非servlet代碼中,只需閱讀系統屬性即可。
+0

很酷的想法。會嘗試!:) –

相關問題