0

我正在尝试使用 WebAppClassLoader 的自定义子类配置 Jetty (6.x) WebAppContext。在代码(Scala)中,就是这样:

  val context = new WebAppContext()
  val cwacl = new CustomWebAppClassLoader(context)
  context.setClassLoader(cwacl)
  ...

这在嵌入 Jetty 时效果很好。然而,在生产中,我只是将一个 war 文件部署到一个独立的码头实例,所以没有机会在这样的代码中配置东西。

我不知道如何通过 Jetty 的配置文件来做同样的事情。任何帮助表示赞赏。

奖励:您将如何配置maven-jetty-plugin以使用 CustomWebAppClassLoader :)

4

2 回答 2

1

您可以使用上下文配置文件。目录中有示例contexts/

这将是这样的:

<Configure id="mycontext1" class="org.mortbay.jetty.webapp.WebAppContext">
    <Set name="classLoader">
        <New class="f.q.n.CustomWebAppClassLoader">
           <Arg><Ref id="mycontext1"/></Arg></New>
    </Set>
</Configure>

(有关更多详细信息,请参阅Jetty XML 语法配置参考。)

于 2010-09-14T19:21:44.463 回答
0

作为使用上下文配置文件的替代方法,您可以在 pom.xml 文件中设置类加载器属性,对于 jetty >= 8.x,例如不扫描 WEB-INF 中的任何类以加快启动速度:

<plugins>
  <plugin>
    <groupId>org.eclipse.jetty</groupId>
    <artifactId>jetty-maven-plugin</artifactId>
    <version>${jetty.version}</version>
    <configuration>
      <webApp>
        <webInfIncludeJarPattern>^$</webInfIncludeJarPattern>
      </webApp>
      <stopKey>foo</stopKey>
      <stopPort>9999</stopPort>
    </configuration>
  </plugin>
</plugins>

参考:Jetty 插件 webapp 配置

于 2015-04-27T11:45:32.940 回答