2016-05-31 24 views
1

我需要在GlassFish中多次部署同一个应用程序,并使用不同的JNDI参数,但我找不到这样做的方法。GlassFish中不同独立实例的JNDI参数值不同

我知道我可以拥有不同的独立实例,并将不同的JNDI资源应用于一个或多个实例,但我无法为不同的实例使用不同值的相同资源名称。 什么是实现我所需要的方式?

+0

你是什么意思是由不同的JNDI _parameters_?是否像传递给JNDI的附加属性,即property.value ='value1',property.value ='value2',或者像JNDI1,JNDI2等不同的JNDI值? – 2016-06-21 20:16:52

回答

0

所以最后我所做的就是用这样的:

@Resource(lookup = "java:app/AppName") 
    private String appName; 

    private String myJndiParameter; 

然后,因为我不能用一个变量来获得自定义JNDI参数的注解,我创建了一个@PostConstruct方法,在那里我得到我想要的JNDI值,像这样:

@PostConstruct 
    public void initialize() 
    { 
     try 
     { 
     myJndiParameter = (String) new javax.naming.InitialContext().lookup(appName + "/" + "my.jndi.parameter.name"); 
     } catch (NamingException e) 
     { 
     // Treat exception 
     } 
    } 

在GlassFish中,我自定义的资源名称的样子:

myapp/my.jndi.parameter.name 

我愿意改进它:)

0

要实现该要求,可以在属性文件中使用不同的JNDI配置,并在JVM参数中传递值以将每个配置应用于多个glassfish服务器实例。

+0

很抱歉,自从发生了一些事情后,我一直无法处理这些事情,但赏金即将过期。我相信你的想法更多是我需要的,你会介绍一个例子,你将如何在GlassFish中配置它,以及属性文件将如何显示?如果你这样做,我会接受你的回答 – enkara

+0

当然。让我尽快提供示例。 –

相关问题