jetty - 如何让 Jetty 读取新的 jetty-xxx.xml 文件
问题描述
我为我的 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>
将此文件放在 $JETTY_BASE/etc 上,但 Jetty 似乎无法读取该文件来配置数据源。但是,如果我选择“新建”标签并将其复制到 jetty.xml 文件,它就可以工作。
我希望将其放在一个单独的文件中,以便更轻松地部署到生产环境并在 jetty-maven-plugin 中使用此文件。
这可能吗?我究竟做错了什么?
解决方案
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
,我们还需要告诉码头使用该 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
推荐阅读
- mysql - 如何在mysql中获取第二级类别?
- python - 如何像在内存中一样读取本地存储中的文件并将其附加到电子邮件中?
- perl - Mojolicious - minion worker 不会自动启动
- angular - Angular 2 - 从组件访问变量到类的外部(无父、子关系)
- java - Java 中的 Float.valueOf(String arg) 舍入问题
- php - 如何在 Laravel 刀片引擎的另一个视图中插入视图
- matlab - Matlab内存不足。使用 pdistmex 时出错
- django - { % extends parent _ template|default:"base.html" % } vs {% extends "base.html" %} 在 Django 中?
- c# - Excel 无法打开文件,因为文件格式或文件扩展名无效。确认文件没有损坏
- android - 更新 RecyclerView 中的记录后实时数据不更新