2010-09-14 55 views
0

我正在嘗試使用WebAppClassLoader的自定義子類來配置Jetty(6.x)WebAppContext。在代碼(斯卡拉),它只是這樣的:如何通過配置在Jetty中設置自定義的WebAppClassLoader?

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

這工作正常,當嵌入碼頭。然而,在生產環境中,我只是將一個war文件部署到一個獨立的jetty實例中,所以沒有機會像這樣配置代碼。

我不知道如何通過Jetty的配置文件做同樣的事情。任何幫助表示讚賞。

獎勵:你將如何配置maven-jetty-plugin使用CustomWebAppClassLoader :)

回答

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 Syntax configuration reference。)

+0

謝謝,布魯諾!這似乎是一個竅門。 – overthink 2010-09-15 15:08:49

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 plugin webapp configuration

相關問題