Как заставить Jetty читать новые файлы jetty-xxx.xml - PullRequest
0 голосов
/ 27 июня 2018

Я создал XML-файл с определенной конфигурацией для моего источника данных jndi, например:

<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_3.dtd">
        <Configure id="Server" class="org.eclipse.jetty.server.Server">
            <New id="MyDB" class="org.eclipse.jetty.plus.jndi.Resource">
                <Arg></Arg>
                <Arg>jdbc/MyDB</Arg>
                <Arg>
                    <New class="com.mysql.cj.jdbc.MysqlConnectionPoolDataSource">
                        <Set name="url">******</Set>
                        <Set name="user">******</Set>
                        <Set name="password">******</Set>
                    </New>
                </Arg>
            </New>
        </Configure>

Отбросил этот файл в $ JETTY_BASE / etc, но Jetty, похоже, не может прочитать файл для настройки источника данных. Однако, если я выберу тег «New» и скопирую его в файл jetty.xml, он будет работать.

Я хочу, чтобы это было в отдельном файле, чтобы его было легче развернуть в рабочей среде, а также использовать этот файл в jetty-maven-plugin.

Возможно ли это? Что я делаю не так?

1 Ответ

0 голосов
/ 27 июня 2018

Jetty будет читать только то, что было сказано, на основе конфигурации.

Вы можете увидеть, что это будет, используя параметр командной строки --list-config.

Пример:

[new-base]$ java -jar ../jetty-home-9.4.11.v20180605/start.jar --list-config

...(snip lots of output)...

Jetty Active XMLs:
------------------
 ${jetty.home}/etc/jetty-threadpool.xml
 ${jetty.home}/etc/jetty.xml
 ${jetty.home}/etc/jetty-webapp.xml
 ${jetty.home}/etc/jetty-plus.xml
 ${jetty.home}/etc/jetty-annotations.xml
 ${jetty.home}/etc/jetty-deploy.xml
 ${jetty.home}/etc/jetty-http.xml
 ${jetty.home}/etc/jetty-jmx.xml

Как видите, только вышеупомянутые файлы XML читаются.

Допустим, мы добавили ${jetty.base}/etc/my-datasource.xml, нам также нужно указать jetty, чтобы использовать этот xml.

Вручную мы можем добавить его в ${jetty.base}/start.ini или создать новый файл с любым именем, например, ${jetty.base}/start.d/mydatasource.ini.

Пример:

[new-base]$ cat start.d/mydatasource.ini
etc/mydatasource.xml

Теперь, когда вы спросите, вы увидите его в списке ...

[new-base]$ java -jar ../jetty-home-9.4.11.v20180605/start.jar --list-config


...(snip lots of output)...

Jetty Active XMLs:
------------------
 ${jetty.home}/etc/jetty-threadpool.xml
 ${jetty.home}/etc/jetty.xml
 ${jetty.home}/etc/jetty-webapp.xml
 ${jetty.home}/etc/jetty-plus.xml
 ${jetty.home}/etc/jetty-annotations.xml
 ${jetty.home}/etc/jetty-deploy.xml
 ${jetty.home}/etc/jetty-http.xml
 ${jetty.home}/etc/jetty-jmx.xml
 ${jetty.base}/etc/mydatasource.xml
...