2015-10-08 141 views
1

我是新來的Java(來自.Net背景後約2個月的Java經驗)。我被要求支持使用Spring,J2EE和Oracle數據庫的Java應用程序。Tomcat屬性配置文件位置

我們正在努力理解我們的部署流程。

有問題的Java應用程序在application.properties文件中包含數據庫連接詳細信息。它的位置似乎是使用下面的行從Spring配置文件來配置:

<context:property-placeholder  location="classpath:config/application.properties,classpath:config/bookings.properties" ignore-resource-not-found="true" /> 

我們的發展Tomcat服務器,應用程序(稱爲預訂)看起來在此位置爲application.properties文件:

/usr/share/tomcat/webapps/Bookings/WEB-INF/classes/config

這是我期望的,看着Spring配置。

然而,在生產Tomcat中,應用程序查找在不同的位置:

在/ usr /共享/ tomcat的/ lib目錄/配置

(在此目錄中,文件名爲bookings.properties

最初的開發者已離開公司,我不知道爲什麼它看起來在不同位置的文件(和不同的文件名)。

任何想法,可以看看我的,或者這可能是配置?應該是注意到兩個文件(application.properties和bookings.properties)都出現在兩個Tomcat服務器上,所以我不明白這個差異?

我們已經將WAR文件重新部署到了開發和生產環境,並且差異仍然存在,即服務器仍然在不同的地方查看。

回答

1

classpath是一個你可以放置一些資源的目錄(爲了簡單起見,鏈接的更多細節)。 這是一個變量,它被添加到啓動命令,有時它有點隱藏。但這是它的工作方式。

也許你可以在$ TOMCAT_DIR \ bin \ catalina.sh中看到如何定義類路徑。 就你而言,你的類路徑中包含的文件夾在開發服務器和生產服務器之間是不同的。這完全正常。

但是,您說在生產中該文件被命名爲bookings.properties。 但隨着這條線:

<context:property-placeholder  location="classpath:config/application.properties,classpath:config/buyer-request.properties" ignore-resource-not-found="true" /> 

我們看到,你從來沒有嘗試加載一個文件名爲booking.properties。 所以問問自己爲什麼這個文件叫做booking.properties。並將其重命名爲application.properties以查看發生了什麼。

希望這個幫助

+0

謝謝文森特。抱歉配置行在帖子中不正確,我現在糾正了它,但它應該是bookings.properties。所以我認爲它正在尋找文件的正確名稱,只是位置看起來不同。我將檢查$ TOMCAT_DIR \ bin \ catalina.sh,看看裏面有什麼,也許這會有所幫助。 – VincentH