【问题标题】:Confused about jetty-env.xml对 jetty-env.xml 感到困惑
【发布时间】:2011-04-24 13:09:39
【问题描述】:

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

为什么他们会建议在我的 WAR 中的配置文件中配置 JNDI 资源?这毫无意义……我一直认为 JNDI 是一种外部化配置的方式。还有其他地方可以将此文件放在 Jetty 服务器机器上吗?

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

【问题讨论】:

    标签: java xml maven-2 configuration jetty


    【解决方案1】:

    我可以在其他地方将此文件放在 Jetty 服务器机器上吗?

    官方JNDI页面是这样写的:

    您可以在 3 个地方 定义命名条目:

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

    在 a 中定义的命名条目 jetty.xml 文件一般是 范围在 jvm 级别或 服务器级别。命名条目中的 jetty-env.xml 文件一般是 范围为文件所在的 webapp 居住,虽然你能够 如果您输入 jvm 或服务器范围 希望,这不是真的推荐。 在大多数情况下,您将定义所有 您希望显示的命名条目 到特定的服务器实例,或 整个jvm在jetty.xml 文件。上下文 xml 文件中的条目 通常将在级别范围内 它适用的网络应用程序, 虽然再一次,你可以提供一个 不太严格的服务器范围级别或 jvm 如果你愿意。

    使用 jetty.xml 在 web 应用程序“外部”进行配置。

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

    使用Maven Jetty Plugin的jettyConfig参数:

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

    【讨论】:

    • 我接受这个作为答案,但 Jetty 文档 (docs.codehaus.org/display/JETTY/jetty.xml) 似乎表明 jetty.xml 用于配置服务器而不是特定的 Web 应用程序。事实上,它要求多个 XML 文件中的配置必须使用相同的服务器 ID(例如 docs.codehaus.org/display/JETTY/Walkthrough+jetty.xml)。但是我应该使用什么服务器 ID 才能使其在 Maven 上下文中正常运行?
    • 我想我明白我不需要将新的 JNDI 资源放在服务器的“配置”元素中,但无论如何我都遇到了困难。我创建了一个新问题:stackoverflow.com/questions/3925771/…
    • @HDave the Jetty documentation (...) seemed to indicate that jetty.xml is used to configure the server 是的,这是正确的。
    • @Pascal -- 总而言之,jetty.xml 文件用于配置服务器,jetty-env.xml 用于配置 web-app。 jetty-env.xml 实际上可以去任何地方,为了 Maven 的目的,只需要通过 JettyEnvXML 配置属性来引用。
    • @HDave so to summarize, the jetty.xml file is for configuring the server and jetty-env.xml is for configuring the web-app. d 我认为这是一个很好的总结。 The jetty-env.xml in fact can go anywhere and for the purposes of Maven just needs to be referenced via the JettyEnvXML configuration property不使用Maven可以去任何地方吗?
    【解决方案2】:

    jetty-env.xml 只是设置 JNDI 参数的附加选项。要在 WAR 之外设置 JNDI 参数,您可以将它们放在 jetty.xml 中。

    在此处查看related postJetty docs for JNDI

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-13
      • 2012-07-22
      • 2013-05-13
      • 2020-04-16
      • 2023-03-08
      • 2019-08-04
      • 2019-12-30
      • 2022-01-20
      相关资源
      最近更新 更多