2016-05-31 64 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

當然。讓我儘快提供示例。 –