GlassFish 中不同独立实例的不同 JNDI 参数值
Different value of JNDI parameter for different standalone instances in GlassFish
我需要在 GlassFish 中使用不同的 JNDI 参数多次部署相同的应用程序,但我找不到实现该操作的方法。
我知道我可以拥有不同的独立实例并将不同的 JNDI 资源应用于一个或多个实例,但我不能为不同的实例使用具有不同值的相同资源名称。
有什么方法可以实现我所需要的?
为达到要求,您可以在 属性 文件中使用不同的 JNDI 配置,并在 JVM 参数中传递值,以将每个配置应用于多个 glassfish 服务器实例。
所以最后我做的是使用这个:
@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
我乐于接受改进建议:)
我需要在 GlassFish 中使用不同的 JNDI 参数多次部署相同的应用程序,但我找不到实现该操作的方法。
我知道我可以拥有不同的独立实例并将不同的 JNDI 资源应用于一个或多个实例,但我不能为不同的实例使用具有不同值的相同资源名称。 有什么方法可以实现我所需要的?
为达到要求,您可以在 属性 文件中使用不同的 JNDI 配置,并在 JVM 参数中传递值,以将每个配置应用于多个 glassfish 服务器实例。
所以最后我做的是使用这个:
@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
我乐于接受改进建议:)