Настройка миграции: в context.xml из Tomcat9 в Wildfly 14.0.1Final - PullRequest
0 голосов
/ 29 ноября 2018

Как я могу переместить некоторую конфигурацию из файла context.xml сервера приложений Tomcat в Wildfly?Мне действительно нужны данные из элемента Environment.

Context.xml содержит что-то вроде этого:

<Context>

    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <WatchedResource>WEB-INF/tomcat-web.xml</WatchedResource>
    <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>


    <Environment name="some.very.important.config.path" value="C:\path\to\the\config\folder"

         type="java.lang.String" />


</Context>

Как я могу сделать это на сервере приложений Wildfly?

Обновление:

Мне нужно использовать JNDI (на данный момент), потому что это приложение написано кем-то другим.

Код для доступа к пути конфигурации для инъекций выглядит как-токак это.

        env = (Context) new InitialContext().lookup("java:comp/env");
        configPath = (String) env.lookup("some.very.important.config.path");

1 Ответ

0 голосов
/ 02 декабря 2018
  • <WatchedResource>WEB-INF/web.xml</WatchedResource>
    WildFly отслеживает изменения в этом файле по умолчанию

  • <WatchedResource>WEB-INF/tomcat-web.xml</WatchedResource>
    Не относится к WildFly.Файл WEB-INF/jboss-web.xml используется для аналогичных целей и также по умолчанию просматривается

  • <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>
    Не имеет значения в WildFly

  • <Environment name="some.very.important.config.path" value="C:\path\to\the\config\folder" type="java.lang.String" />
    Создайте текстовый файл с именем (например) configure-wildfly.cli со следующим содержимым

    # Execute offline
    embed-server --server-config=standalone.xml
    
    # Add system properties
    /system-property=some.very.important.config.path:add(value=C:\path\to\the\config\folder)
    /system-property=some.other.important.config.value:add(value=foobar)
    
    # Bind an entry into the naming service
    /subsystem=naming/binding=java\:global\/config\/important\/path:add(binding-type=simple, type=java.lang.String, value="C:\path\to\the\config\folder")
    
    stop-embedded-server
    

    , а затем запустите его с:

    ${WILDFLY_HOME}/bin/jboss-cli.sh --file=configure-wildfly.cli
    

    Сценарии так, как этопозволяет легко восстановить ваш сервер с его базовой установки.Вы можете контролировать этот файл, если хотите.

Доступ к системным свойствам:

 String configPath = System.getProperty("some.very.important.config.path");

Поиск значения в JNDI:

 Context ctx = new InitialContext();
 String configPath = (String)ctx.lookup("java:global/config/important/path");

или введите его

 @Resource(lookup="java:global/config/important/path")
 private String configPath;
...