java.lang.String в контексте jndi по умолчанию с Apache Geronimo - Как? - PullRequest
4 голосов
/ 26 сентября 2008

В сервлете я делаю следующее:

  Context context = new InitialContext();
  value = (String) context.lookup("java:comp/env/propertyName");

В экземпляре Apache Geronimo (WAS CE 2.1) как связать значение с ключом propertyName ?

В Websphere AS 6 я могу настроить эти свойства для поиска JNDI на странице «Привязки пространства имен» в консоли управления, но, насколько я знаю, я не могу найти способ сделать это в сообществе в Интернете. 1008 *

Ответы [ 2 ]

1 голос
/ 27 сентября 2008

Одна из возможностей - добавить свойства в файл web.xml (в каталоге WEB-INF), используя один или несколько тегов <env-entry>. Например, что-то вроде следующего:

<env-entry>
   <description>My string property</descriptor>
   <env-entry-name>propertyName</env-entry-name>
   <env-entry-type>java.lang.String</env-entry-type>
   <env-entry-value>Your string goes here</env-entry-value>
</env-entry>

Каждый тег env-entry объявляет новую переменную среды, к которой вы затем можете обращаться из контекста java:comp/env.

Как только вы добавите необходимые env-entry, вы можете использовать код, аналогичный тому, который вы уже опубликовали, для доступа к этим значениям. Имейте в виду, у меня не установлен Geronimo, поэтому я не знаю, нужно ли выполнять какие-либо дополнительные настройки, чтобы это работало.

0 голосов
/ 16 марта 2011

Можно поместить ваши свойства в файл и сделать имя и местоположение файла ресурс-ссылкой типа URL в web.xml. Значение ресурса задается в geronimo-web.xml.

Ваш web.xml будет иметь следующую запись:

<resource-ref>
    <res-ref-name>configFileName</res-ref-name>
    <res-type>java.net.URL</res-type>
</resource-ref>

В geronimo-web.xml вы определяете значение для configFileName

<name:resource-ref>
    <name:ref-name>configFileName</name:ref-name>
    <name:url>file:///etc/myConfigFile</name:url>
</name:resource-ref>

В Java у вас есть следующий код для поиска значения:

initialContext = new InitialContext();
URL url = (URL) initialContext.lookup("java:comp/env/configFileName");
String configFileName = url.getPath();

Затем вы должны открыть файл и прочитать любое значение в нем.

Результатом всего этого является то, что у вас есть свойства в файле в файловой системе. Он не будет перезаписан при повторном развертывании приложения.

...