Разное значение параметра JNDI для разных автономных экземпляров в GlassFish
Мне нужно, чтобы одно и то же приложение развертывалось в GlassFish несколько раз с разными параметрами JNDI, но я не могу найти способ сделать это.
Я знаю, что могу иметь разные автономные экземпляры и применять разные ресурсы JNDI к одному или нескольким экземплярам, но у меня не может быть одного и того же имени ресурса с разными значениями для разных экземпляров. Как добиться того, что мне нужно?
2 ответа
Итак, в конце концов я использовал это:
@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
Я открыт для предложений по улучшению:)
Чтобы выполнить требование, вы можете использовать различные конфигурации JNDI в файле свойств и передавать значения в аргументах JVM, чтобы применить каждую конфигурацию к нескольким экземплярам сервера Glassfish.