2012-04-10 44 views
0

Grails 2.0生產中的外部化配置無法訪問應用程序 - 當我將Grails應用程序升級到Grails 2.0.3時,應用程序在生產Tomcat中無法訪問,因此無法訪問應用程序 - HTTP 404

當我在開發中運行應用程序或甚至使用「grails prod run-war」時,該應用程序正常工作。但是當我將這個應用程序移動到Tomcat(在Tomcat 6和7上測試)時,該應用程序不再可用。它正確加載,但當我去http://localhost:8080/appName我收到HTTP 404.

日誌是空的,因此我無法找出問題出在哪裏。當我從Config.groovy中刪除外部化的配置加載時,該應用程序工作!真奇怪。 Config.groovy:

grails.config.locations = ["file:/home/user/application_homes/app_home/app-config.properties"] 

你有沒有遇到同樣的問題?或者從Grails 1.3.7到Grails 2.0.3有什麼變化可能會影響到這一點?

感謝您的任何建議!

+0

我假設'/ home/user/application_homes/app_home/app-config.properties'存在於tomcat服務器上,並且可以被運行tomcat進程的uid讀取? – 2012-04-10 09:40:09

+0

是的,即使有相關訪問權限。而且,我在Config.groovy中控制這個: – kuceram 2012-04-10 11:45:18

回答

0

我遇到的確切同樣的問題,你會出現......

我什麼也沒得到在日誌...

它只是沒有啓動...失敗:

0/04/2012 2:17:36 PM org.apache.catalina.core.StandardContext start 
SEVERE: Error listenerStart 
20/04/2012 2:17:36 PM org.apache.catalina.core.StandardContext start 
SEVERE: Context [/abcd] startup failed due to previous errors 

似乎當我們在 grails.config.locations部分使用的classpath春天格式工作。

我們剛剛去過grails 2.0.3,它可能是一個bug嗎?

0

也遇到了同樣的問題。我們實際上有兩種方法來指定grails.configuration.locations,使用System/Env變量或-Dconfig.file =定義。使用環境變量負載,這會導致的

classpath:the-config-file.properties 

線如果指定了-Dconfig.file,它使用基於文件的評估:

file:/full-path/the-config.file.properties 

當使用系統/ env的方法,所述配置加載正常!只要我們轉向使用'文件'查找,Tomcat無法啓動。

它看起來創建internalConfigurationAnnotationProcessor豆後是剛剛失敗:

2012-04-22 22:35:53,514 (main) DEBUG [org.codehaus.groovy.grails.commons.spring.GrailsWebApplicationContext] - <Bean factory for org.co[email protected]17bcd4: org.codehaus.gro[email protected]752144: defining beans [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,....<--- (left out the big list of others) 
2012-04-22 22:35:53,538 (main) DEBUG [org.codehaus.groovy.grails.commons.spring.ReloadAwareAutowireCapableBeanFactory] - <Creating shared instance of singleton bean 'org.springframework.context.annotation.internalConfigurationAnnotationProcessor'> 
2012-04-22 22:35:53,538 (main) DEBUG [org.codehaus.groovy.grails.commons.spring.ReloadAwareAutowireCapableBeanFactory] - <Creating instance of bean 'org.springframework.context.annotation.internalConfigurationAnnotationProcessor'> 
2012-04-22 22:35:53,547 (main) DEBUG [org.springframework.beans.factory.support.DefaultListableBeanFactory] - <Returning cached instance of singleton bean 'grailsApplication'> 
2012-04-22 22:35:53,547 (main) DEBUG [org.codehaus.groovy.grails.commons.spring.ReloadAwareAutowireCapableBeanFactory] - <Eagerly caching bean 'org.springframework.context.annotation.internalConfigurationAnnotationProcessor' to allow for resolving potential circular references> 
2012-04-22 22:35:53,548 (main) DEBUG [org.codehaus.groovy.grails.commons.spring.ReloadAwareAutowireCapableBeanFactory] - <Finished creating instance of bean 'org.springframework.context.annotation.internalConfigurationAnnotationProcessor'> 
2012-04-22 22:35:53,667 (main) INFO [org.codehaus.groovy.grails.commons.spring.ReloadAwareAutowireCapableBeanFactory] - <Destroying singletons in org.codehaus.gro[email protected]752144 
22/04/2012 10:35:53 PM org.apache.catalina.core.StandardContext start 
SEVERE: Error listenerStart 

最奇怪的部分是剛剛從classpath:<>定義更改爲file:<>引起此問題。我已將調試語句放入grails Config.groovy文件中,並且文件的內容已被讀取正常。

相關問題