2017-06-26 52 views
0

我們在tomcat上部署了一個Spring應用程序,並且它不啓動。由於指定的配置文件而跳過的XML bean定義文件[默認]不匹配

應用程序錯誤如下:

Caused by: org.springframework.beans.PropertyBatchUpdateException; nested 
PropertyAccessExceptions (1) are: 
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'driverClassName' threw exception; nested exception is java.lang.IllegalStateException: Could not load JDBC driver class [${hibernate.connection.driver_class}] 
at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:121) 
at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:75) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1564) 
... 49 more 

我們確實有一個屬性文件在規定: 的/ opt/tomcat的/應用程序的名字/ tomcat8-2 有三個文件:config.properties,核心-WS .proprties和log4j的-config.xml中

我們知道$ {} TOMCAT_CONFIG_HOME被定義爲中:/ opt/tomcat的/應用程序的名字/ tomcat8-2

我們知道,文件權限是否正確,用戶運行tomcat已經讀取權限這個配置目錄中的目錄和文件。我可以像那個tomcat用戶編輯/讀取屬性文件一樣。所以,我們知道這不是一個權限問題。

從應用程序日誌,我們有這樣的錯誤消息:

Skipped XML bean definition file due to specified profiles [default] not matching: class path resource [spring/app-platform-entity-context.xml] 

Spring應用程序上下文文件中有這樣的特性:

<beans profile="default"> 
    <context:property-placeholder location="file:${TOMCAT_CONFIG_HOME}/core-ws.properties" /> 
</beans> 

最後這裏是什麼core-ws.properties外觀像:

hibernate.connection.url=jdbc:oracle:thin:@//123.456.789/APP_DB 
hibernate.connection.driver_class=oracle.jdbc.driver.OracleDriver 
hibernate.connection.username=some_db_user 
hibernate.connection.password=some_db_password 

所以,我已經研究了這一個日子的跑車,我在我的智慧 結束。我可以告訴你,我們對log4j-config.xml文件沒有問題。該應用程序可以找到它,並閱讀它就好了。它只是這一個參數,似乎是崩潰的應用程序...

任何幫助這個問題將不勝感激。謝謝!

回答

0

XML文件被跳過的原因是因爲我們在CATALINA_OPTS設置中有一個-Dspring.profiles.active = prod。

直到我們開始導出tomcat啓動時的值,我們才發現它。

一旦我們刪除這一行,我們的[默認]配置文件接管,因爲它應該。

謝謝!

相關問題