IBM Worklight - Как использовать свойства домена и порта адаптера, взятые из внешнего файла?

У меня есть веб-сервис. Его домен и порт можно изменить. Поэтому я хочу прочитать порт и домен из файла или базы данных. Когда эта информация меняется, я обновляю их в БД или файле.

Адаптер XML:

<domain>${adp.hostname}</domain>
<port>${adp.port}</port>

worklight.properties:

adp.hostname=localhost
adp.port=10080

Это работает нормально. Но я бы хотел взять adp.hostname а также adp.port из файла или базы данных.

1 ответ

Решение

Что нужно помнить об адаптерах, так это то, что вы не можете в реальном времени изменять какие - либо свойства, установленные в XML адаптера, после его развертывания.

После развертывания адаптера он превращается в объект и сохраняется в памяти. В это время вы больше не можете взаимодействовать с его "настройкой".

Единственное, что вы можете сделать, это решить, какое значение будут иметь эти свойства, прежде чем развертывать адаптер. Например, другой набор свойств для сред QA/TEST/UAT/PROD...


Чтобы настроить внешние свойства, начиная с Worklight 6.0 и выше, вы можете прочитать этот раздел документации: Конфигурирование проекта IBM Worklight в работе с использованием записей среды JNDI

Специально для Tomcat в его server.xml:

<Context docBase="app_context_path" path="/app_context_path">
  <Environment name="publicWorkLightPort" override="false" 
    type="java.lang.String" value="9080"/>
</Context>
  1. Вы меняете app_context_path к контексту вашего проекта (название проекта)
  2. Вы добавляете environment дочерние элементы для каждого нужного вам свойства

Важно помнить: эти свойства также должны существовать в worklight.properties; это будут свойства по умолчанию, и при использовании приведенного выше примера они будут перезаписаны, и вместо них будут использованы свойства среды.

В приведенном выше примере вы можете увидеть, что он заменит свойство по умолчанию publicWorkLightPort,

Другие вопросы по тегам