Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 基于deploymentName添加配置文件_Java_Grails_Jboss_Jndi - Fatal编程技术网

Java 基于deploymentName添加配置文件

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

我试图加载一个特定于JBoss服务器上部署的配置文件。我的想法是,我可以在同一台服务器上对同一个应用程序进行多个部署(例如,培训、测试、开发)。而且每个部署都有不同的配置

现在我的方向是通过JNDI从jboss获取部署名称。下面是我的grails app/conf/Config.groovy中的一部分

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