JBoss 7.1.1 меняет привязку JNDI во время выполнения

В JBoss 7.1.1 в автономном режиме все привязки JNDI настраиваются в файле standalone.xml в подсистеме jboss:domain:naming:1.1. Согласно документации, файл standalone.xml не может быть изменен во время работы сервера. Я пытался использовать интерфейс командной строки JBoss, но не знаю, как писать/изменять ресурс.

Как изменить значение в JNDI без перезапуска jboss?


person ragnor    schedule 30.05.2012    source источник


Ответы (3)


Вам должно помочь: https://docs.jboss.org/author/display/AS71/JNDI+Reference

Тема — Привязка записей к JNDI:

Пример standalone.xml может выглядеть так:

<subsystem xmlns="urn:jboss:domain:naming:1.1" >
  <bindings>
    <simple name="java:global/a" value="100" type="int" />
    <object-factory name="java:global/b" module="com.acme" class="org.acme.MyObjectFactory" />
    <lookup name="java:global/c" lookup="java:global/b" />
 </bindings>
</subsystem>


Чтобы добавить эти записи через интерфейс командной строки:

/subsystem=naming/binding=java\:global\/mybinding:add(binding-type=simple, type=long, value=1000)


Чтобы просмотреть все параметры, используемые командой add (на самом деле это можно использовать для получения описания любой команды CLI):

/subsystem=naming/binding=*:read-operation-description(name=add)


Не пробовал, но надеюсь поможет!

person mik    schedule 20.06.2012

Вопрос имеет много просмотров, поэтому я отвечу на него. Вдохновленный ответом @mik, я понял, что для изменения значения некоторого ключа JNDI, например. java:jboss/api/key в newApiKey запустите JBoss CLI и выполните:

connect
/subsystem=naming/binding=java\:jboss\/api\/key/:write-attribute(name=value,value=newApiKey)

Изменение будет немедленно видно на сервере, а также сохранено (обновлено) в standalone.xml, чтобы оно не потерялось после перезапуска сервера.

person ragnor    schedule 07.11.2014

Я искал именно то, как добавить или изменить привязку JNDI во время выполнения, но мне нужно было сделать это в конфигурации домена (кластера) Wildfly 9 (не автономной), которая почти такая же конфигурация, как JBoss 7. Однако, Я не мог найти способ эффективно применить изменения без перезапуска всех серверов.

Для начала войдите в интерфейс командной строки JBoss и подключитесь к контроллеру домена вашего сервера:

./jboss-cli.sh
connect

Во-первых, вам нужно найти, какой профиль активен в группе серверов, поэтому в корневом каталоге сервера / введите следующие команды:

cd server-group=
ls

После этого вы должны ввести единственную группу серверов, показанную в команде списка (ls), введя cd {{your_server_group_name}}, затем снова введите ls и найдите запись с именем profile, чтобы проверить, какой из них активен. Давайте рассмотрим full-ha в качестве активного профиля для нашего примера.

Затем вернитесь в корневую папку конфигурации /, набрав cd .., и введите следующие команды для навигации и просмотра всех доступных привязок JNDI с их текущими значениями:

cd profile=full-ha/subsystem=naming/binding=
:read-resource(recursive=true)

Сделав это, вы сможете увидеть все доступные привязки JNDI и их атрибуты. Если вы хотите перечислить только имена привязок, введите ls вместо последней команды.

Чтобы изменить привязку, введите cd и имя привязки, указанное в предыдущей команде. Предположим, вы хотите изменить значение привязки с именем java:/webservice.url, тогда вы должны ввести

cd java\:\/webservice.url

Обратите внимание, что некоторые символы в имени привязки необходимо заключать в кавычки, такие как : (двоеточие) и / (косая черта) с обратной косой чертой (\) .

Чтобы изменить атрибут в этой привязке, вы должны использовать команду :write-attribute. В этом примере предположим, что вы хотите изменить (или добавить) атрибут с именем "значение" с его содержимым как "это значение":

:write-attribute(name=value,value="this is a value")

Чтобы применить это изменение, вам необходимо перезапустить все серверы в кластере, введя следующую команду:

/server-group={{server-group-name}}:restart-servers

Если вы хотите узнать больше о командах для добавления или удаления привязок JNDI, проверьте это страница фрагментов jboss-cli

Эта конфигурация была успешно протестирована в Wildfly 9.0.1.

person s_bighead    schedule 27.06.2018