Разное значение параметра 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.

Другие вопросы по тегам