Параметризация EAR - PullRequest
       24

Параметризация EAR

1 голос
/ 16 июля 2010

Я хотел бы установить некоторые параметры только для чтения (например, хост и порт реестра RMI) для приложения Java EE, развернутого на сервере Glassfish. Обычно это делается дескриптором развертывания, но моя проблема в том, что он упакован в EAR, поэтому я не могу редактировать его без изменения EAR.

Мне нужно что-то похожее на настройку ресурсов JDBC и JMS, но гораздо проще. Я мог бы поместить данные конфигурации в таблицу базы данных, но это кажется излишним. Я мог бы использовать адаптер файловых ресурсов, но было бы лучше, если бы я мог редактировать конфигурацию в консоли администратора Glassfish.

Есть ли стандартный способ сделать это? Как вы тестируете свои приложения, когда они зависят от внешних узлов, с которыми они должны общаться? Куда мне поместить эти параметры и как я могу получить к ним доступ?

Моим лучшим предположением было определить внешние ресурсы JNDI, но тогда куда мне поместить данные?

ОБНОВЛЕНИЕ: это то, о чем я думал:

Как сохранить параметры конфигурации Java EE вне EAR или WAR?

Итак, вопрос: как мне это сделать в Glassfish ?

1 Ответ

3 голосов
/ 16 июля 2010

После нескольких часов поиска в Google я нашел ответ!Это не тривиально, но, к счастью, очень просто.Вот оно:

http://www.mentby.com/glassfish/custom-resource-work-when-looking-it-up-but-not-with-injection.html

Создайте пользовательский ресурс на консоли администратора и добавьте свойство с именем "value" .Например:

альтернативный текст http://img231.imageshack.us/img231/8237/jndicustomresource.png

Тогда получить доступ к этому имени / значению очень просто из EJB:

try {
     InitialContext ic = new InitialContext();
     String value = (String) ic.lookup("MyCustomResource");
     System.out.println("MyCustomResource = " + value);
} catch (NamingException e) {
     e.printStackTrace();
}

Который печатает

ИНФОРМАЦИЯ: MyCustomResource = Большое объятие от MyCustomResource!

...