对jetty-env.xml感到困惑

HDa*_*ave 5 java xml configuration maven-2 jetty

我有一个使用JNDI来定位数据源和事务管理器的webapp.我从Jetty文档中看到如何通过jetty-env.xml文件执行此操作.但是它提到应该将此文件放入WEB-INF目录中.

为什么他们建议在我的WAR内部的配置文件中配置JNDI资源?这没有任何意义......我一直认为JNDI是一种外部化配置的方式.还有另一个地方我可以把这个文件放在Jetty服务器上吗?

一个后续问题:在我的Maven WAR模块中怎么样...我应该如何处理这个文件以便我可以使用Maven jetty插件进行开发,但是文件最终没有在WAR中?

Pas*_*ent 4

我可以将这个文件放在 Jetty 服务器计算机上吗?

JNDI官方页面是这样描述的:

您可以在 3 个位置定义命名条目:

  1. 码头.xml
  2. WEB-INF/jetty-env.xml
  3. 上下文 xml 文件

文件中定义的命名条目的范围 jetty.xml通常为 jvm 级别或服务器级别。文件中的命名条目 jetty-env.xml通常会限定在文件所在的 Web 应用程序范围内,尽管您可以根据需要输入 jvm 或服务器范围,但实际上并不建议这样做。在大多数情况下,您将在文件中定义您希望对特定服务器实例或整个 jvm 可见的所有命名条目jetty.xml 。上下文 xml 文件中的条目通常会被限定在它所应用的 web 应用程序的级别,不过,如果您愿意,您可以再次提供不太严格的 Server 或 jvm 范围级别。

用于jetty.xml配置 Web 应用程序“外部”的内容。

后续问题:在我的 Maven WAR 模块中怎么样...我应该如何处理这个文件,以便我可以使用 Maven jetty 插件进行开发,但不会让该文件最终出现在 WAR 中?

使用Maven Jetty 插件的 jettyConfig 参数:

jettyConfig 选修的。除了任何插件配置参数之外,还将应用 jetty.xml 文件的位置。如果您有其他要部署的 web 应用程序、处理程序等,或者您有其他无法从插件配置的 jetty 对象,您可以使用它。