Ответ заключается в использовании плана развертывания, который является стандартным веб-логическим способом выполнения этих действий. Это очень хорошо описано здесь:
http://middlewaremagic.com/weblogic/?p=5144
Однако предположим, что вам нужно установить что-то еще, переменную окружения. Если первый добавить переменную в web.xml:
<env-entry>
<env-entry-name>directoryPath</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>/data/uploads</env-entry-value>
</env-entry>
Это определяет путь, который, конечно, может быть отличной от среды до среды.
Мы можем сослаться на это InitialContext, или только весной JEE:
<jee:jndi-lookup id="directoryPath" jndi-name="directoryPath" resource-ref="true" default-value="/data/uploads"/>
Так что же это plan.xml, первое что вам нужно сгенерировать по умолчанию один, это вы можете зажать по ссылке выше однако вы можете создать свой по умолчанию один, проверяя по этой ссылке:
From the docs
Затем нам нужно заменить значение, нам нужно, так как мы используем web.xml нам нужно вставить немного web.xml:
<module-descriptor external="false">
<root-element>web-app</root-element>
<uri>WEB-INF/web.xml</uri>
<variable-assignment>
<name>directoryPath</name>
<xpath>/web-app/env-entry/env-entry-value</xpath>
</variable-assignment>
</module-descriptor>
переменная должна определить в переменной части plan.xml
<variable>
<name>directoryPath</name>
<value>/data/secrets</value>
</variable>
<variable>
Наконец обновить приложение (план может быть загружен по умолчанию по -plan опции) или в консоли и указать план. В консоли выберите развертывание, выберите обновление и выберите план из файловой системы. Приложение - это текущее развертывание, а файл plan.xml можно обновлять как и когда. Да, приложение перезапускается, но это может быть запланированный умеренный отток, а не полномасштабный redploy. Будет использоваться новый путь к каталогу. Не самый простой интерфейс настройки JNDI, который я вам дам, но он работает.
Почему вы не используете атрибуты ApplicationContext? – ramasCoder
Но они будут потеряны после перезапуска приложения. – ramasCoder
Мне нужно что-то стойкое. –