Java 基于deploymentName添加配置文件
我试图加载一个特定于JBoss服务器上部署的配置文件。我的想法是,我可以在同一台服务器上对同一个应用程序进行多个部署(例如,培训、测试、开发)。而且每个部署都有不同的配置 现在我的方向是通过JNDI从jboss获取部署名称。下面是我的grails app/conf/Config.groovy中的一部分Java 基于deploymentName添加配置文件,java,grails,jboss,jndi,Java,Grails,Jboss,Jndi,我试图加载一个特定于JBoss服务器上部署的配置文件。我的想法是,我可以在同一台服务器上对同一个应用程序进行多个部署(例如,培训、测试、开发)。而且每个部署都有不同的配置 现在我的方向是通过JNDI从jboss获取部署名称。下面是我的grails app/conf/Config.groovy中的一部分 appCtx = new InitialContext().lookup("java:app") if(appCtx) { deploymentName = appCtx.lookup("Ap
appCtx = new InitialContext().lookup("java:app")
if(appCtx) {
deploymentName = appCtx.lookup("AppName")
grails.config.locations << "classpath:${deploymentName}-config.properties"
grails.config.locations << "classpath:${deploymentName}-config.groovy"
}
我遇到的问题是我在打包时出错
Need to specify class name in environment or system property,
or as an applet parameter, or in an application resource file:
java.naming.factory.initial
有人有办法解决这个问题吗?或者有没有更简单的方法
我正在使用JBoss 7.1.1,我想出来了。。。这就像将代码放在try/catch块中一样简单
import javax.naming.Context
import javax.naming.InitialContext
try {
Context appCtx = (Context)(new InitialContext().lookup("java:app"))
// JBoss's deployment name
// you can see this at Profile >> Container >> Naming >> applications
deploymentName = appCtx.lookup("AppName")
grails.config.locations << "classpath:${deploymentName}-config.properties"
grails.config.locations << "classpath:${deploymentName}-config.groovy"
if(System.properties["${deploymentName}.config.location"]) {
grails.config.locations << "file:" +
System.properties["${deploymentName}.config.location"]
} else if(System.getenv("${deploymentName}.config.location")) {
grails.config.locations << "file:" +
System.getenv("${deploymentName}.config.location")
}
}catch(Exception ex) {
// Initial Context does not exist
// aka, not deployed
}
和值/路径。如果在窗口上,则双击该路径
E:\\Servers\\jboss\\jboss7.1.1\\standalone\\configurations\\training-config.properties
然后将war文件部署到jboss。应选择配置:D
道具交给Mike,由他提出系统属性/环境变量的想法
training.config.location
E:\\Servers\\jboss\\jboss7.1.1\\standalone\\configurations\\training-config.properties