2010-09-14 3 views
0

J'essaye de configurer un WebAppContext de jetée (6.x) avec une sous-classe personnalisée de WebAppClassLoader. Dans le code (Scala), c'est simplement ceci:Comment définir un WebAppClassLoader personnalisé dans Jetty via config?

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

Cela fonctionne très bien lors de l'intégration de Jetty. En production, cependant, je viens de déployer un fichier war sur une instance de jetée autonome, donc il n'y a aucune possibilité de configurer des choses dans le code comme ça.

Je n'arrive pas à comprendre comment faire la même chose avec les fichiers de configuration de Jetty. Toute aide est appréciée.

Bonus: Comment voulez-vous configurer maven-jetty-plugin utiliser le CustomWebAppClassLoader :)

Répondre

1

Vous pouvez utiliser les fichiers de configuration de contexte. Il y a des exemples dans le répertoire contexts/.

Ce serait quelque chose le long de ces lignes:

<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> 

(Voir la Jetty XML Syntax configuration reference pour plus de détails.)

+0

Merci, Bruno! Cela semblait faire l'affaire. – overthink

0

Comme alternative à l'aide d'un fichier de configuration de contexte, vous pouvez définir les attributs classloader dans la fichier pom.xml, pour jetty> = 8.x par exemple pas numériser toute classe dans WEB-INF pour un démarrage plus rapide:

<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> 

Référence: Jetty plugin webapp configuration

Questions connexes