2016-02-15 3 views
0

Мне нужно заменить мои записи в web.xml чем-то, что можно обновить без необходимости перераспределения. Сначала я подумал о создании таблицы базы данных, но потом парень предложил weblogic JNDI. Проблема в том, что я не знаю, как это сделать, и даже не знаю, возможно ли это. Я пытался найти ответ через Интернет, но до сих пор не смог добиться большого прогресса. Не могли бы вы помочь мне с этим? Заранее спасибо.Как заменить мои записи в web.xml на weblogic JNDI?

Примечание: Это самый первый случай, когда я задаю вопрос здесь, поэтому, пожалуйста, будьте терпеливы.

+0

Почему вы не используете атрибуты ApplicationContext? – ramasCoder

+0

Но они будут потеряны после перезапуска приложения. – ramasCoder

+0

Мне нужно что-то стойкое. –

ответ

0

Ответ заключается в использовании плана развертывания, который является стандартным веб-логическим способом выполнения этих действий. Это очень хорошо описано здесь:

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, который я вам дам, но он работает.

+0

Спасибо вам большое! –

Смежные вопросы