2014-12-06 17 views
0

我有一個Java應用程序(.war),我使用${user.home}/${project.build.finalName}/index(在hibernate.properties中)來保存休眠索引。我可以將它部署在windows中的tomcat中,沒有問題。但是當我在linux(ubuntu服務器14.04)中部署時,$ {user.home}將轉換爲/usr/share/tomcat7/而不是/var/lib/tomcat7。 tomcat主(WebApp文件夾)是/var/lib/tomcat7/是因爲它不能寫入/usr/share/tomcat7/

我應該使用哪一個變量引用/var/lib/tomcat7部署會失敗?

感謝

+1

我不確定什麼是「hibernate索引」,因此,這可能是一個愚蠢的問題,但爲什麼將它包含在.war文件中,而不是以這種非便攜方式引用本地文件系統? – Dima 2014-12-06 00:48:00

+0

顯示您嘗試部署您的web應用程序的代碼 – fge 2014-12-06 00:59:48

+0

實際上這就是我不想要的。索引文件夾保存了休眠全文搜索索引的索引。在Windows默認情況下,當我部署它的路徑將在應用程序內(tomcat \ myapp \ index),在linux中我希望它是/ var/lib/tomcat7/myapp/index。但它不是 – Kossel 2014-12-06 01:00:20

回答

0

嗯,有一個系統屬性的默認設置,稱爲catalina.home指向Tomcat的安裝根目錄。你可以使用它(我認爲,在你的情況下,它會像你想要的那樣被設置爲/ var/lib/tomcat7)。

此外,您可以在tomcat啓動期間通過將其添加到CATALINA_OPTS環境變量來設置任何系統屬性。例如:

CATALINA_OPTS=-Dfoo.bar=/some/path/to/hibernate/index /var/lib/tomcat7/bin/catalina.sh start

(上面的,就是要在一行bash命令)。

+0

你是almsot權利! $ {catalina.home}默認是/ usr/share/tomcat7正確答案應該是$ {catalina.base},它指向/ var/lib/tomcat7:D解決了 – Kossel 2014-12-06 07:57:55