2015-10-20 56 views
0

。我試圖創建一個文件setenv.sh對申報的路徑..如何在Linux中設置CLASSPATH讓grails找到外部配置?在linux下爲

這樣的..

export CLASSPATH=$CLASSPATH:/tampung/ 


# Check for application specific parameters at startup 
if [ -r "$CATALINA_BASE/bin/appenv.sh" ]; then 
    . "$CATALINA_BASE/bin/appenv.sh" 
fi 

echo "Using CATALINA_OPTS:" 
for arg in $CATALINA_OPTS 
do 
    echo ">> " $arg 
done 
echo "" 

echo "Using JAVA_OPTS:" 
for arg in $JAVA_OPTS 
do 
    echo ">> " $arg 
done 
echo "_______________________________________________" 
echo "" 

我想我使用這個文件可以重定向「類路徑」位置

grails.config.locations = ["classpath:external-config.groovy"] //i mean this classpath 

我該如何設置這個類路徑?

+1

http://stackoverflow.com/questions/28437929/grails-war-tomcat-with-external-config-file – Vahid

+0

我還是不明白它:( – akiong

+1

-Dapp.config.type = file -Dapp.config。 file =/etc/yourappname/production.properties。看看這裏:https://books.google.co.uk/books?id=nvt1qQ_aU7YC&pg=PT233&lpg=PT233&dq=tomcat+setenv+-Dapp.config.file%3D/路徑/到/配置+的grails +配置&源= BL&OTS = sGCUVnxj5U&SIG = zc3lV20fH8OY28s3pEuXZ4J8ezw&HL = EN&SA = X&VED = 0CEIQ6AEwBWoVChMIr-XWgrPRyAIVBaw-Ch2rhgG2#v = onepage&q = Tomcat的%20setenv%20-Dapp.config.file%3D%2Fpath%2Fto%2Fconfig% 20grails%20config&f = false – Vahid

回答

0

你只需要將一個CLASSPATH添加到你的setenv.sh文件中。 例如......這樣的..

CLASSPATH=/root/yourtomcatName/lib:/yourexternalconfigpath 
export CLASSPATH 

然後重新運行Tomcat的。

希望它能幫助你。

+0

哇..它的工作..感謝你 – akiong

1

Grails中配置外部配置文件的最簡單的方法做到這一點:

在Tomcat中:

# External configuration location. NOTE - the app will append appname i.e. YOUR_APP to the end of this path 
CONFIGLOC="$CATALINA_HOME/../myconf" 
JAVA_OPTS="$JAVA_OPTS -DCONFIGLOC=$CONFIGLOC" 

所以在Tomcat或CATALINA_HOME文件夾中創建一個文件夾myconf。然後將您的外部配置放置在myconf/yourApp /文件夾中

現在將您的應用中的配置稱爲外部配置。

在你的Config.groovy在您的應用程序上現在定義:

//String externalConfigPath='classpath:' 
if (System.getProperty('CONFIGLOC')) { 
    externalConfigPath='file:'+System.getProperty('CONFIGLOC')+File.separator+appName+File.separator 
} 

現在在裏面的Config.groovy環境的配置...

environments { 
... 
production { 
     grails.logging.jul.usebridge = false 
     grails.config.locations = [ 
      "${externalConfigPath}${appName}Config.groovy" 
      "${externalConfigPath}myAppConfig.groovy" 
     ] 
    } 

您可以動態地得到它綁定你的appNameConfig.groovy或者定義它在上面提供的兩行中提供的兩行