2008-09-26 7 views
4

В сервлет я делаю следующее:java.lang.String в контексте jndi по умолчанию с Apache Geronimo - Как?

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

На примере Apache Geronimo (WAS CE 2.1) как я ассоциировать значение с ключом ИмениСвойства?

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

ответ

1

Одна из возможностей - добавить свойства в файл 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> 

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

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

0

Можно поместить ваши свойства в файл и указать имя и расположение файла URL-адреса 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> 

В Джеронимо-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(); 

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

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