如何使Jetty读取新的Jetty-xxx.xml文件

如何使Jetty读取新的Jetty-xxx.xml文件,jetty,Jetty,我已经为我的jndi数据源创建了一个具有特定配置的xml文件,如下所示: <?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">

我已经为我的jndi数据源创建了一个具有特定配置的xml文件,如下所示:

<?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>

jdbc/MyDB
******
******
******
已在$JETTY_BASE/etc上删除此文件,但JETTY似乎无法读取该文件以配置数据源。但是,如果我选择“New”标记并将其复制到jetty.xml文件中,它就会工作

我希望这是一个单独的文件,以便更容易部署到生产环境中,并在jetty maven插件中使用此文件


这可能吗?我做错了什么?

Jetty只会根据配置读取要求读取的内容

您可以使用
--list config
命令行选项查看这将是什么

例如:

[new base]$java-jar../jetty-home-9.4.11.v20180605/start.jar--列表配置
…(大量输出)。。。
Jetty主动XML:
------------------
${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/mydatasource.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

谢谢,它确实工作得很好。只要在start.d文件夹中创建新的ini文件就足够了。通过这种方式,我可以保持原来的jetty文件不变,只需添加新文件即可配置我的生产服务器。谢谢。Jetty文档中没有明确讨论这一点,理解这一点非常关键。@user2959589请参见