Question

Je suis en train de configurer une jetée (6.x) WebAppContext avec une sous-classe personnalisée de WebAppClassLoader . Dans le code (Scala), il est tout simplement ceci:

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

Cela fonctionne bien lors de l'intégration jetée. Dans la production, cependant, je déploie juste un fichier de guerre à une instance de la jetée autonome, donc il n'y a aucune possibilité de configurer les choses dans le code comme celui-ci.

Je ne peux pas comprendre comment faire la même chose via les fichiers de configuration de la jetée. Toute aide est appréciée.

Bonus: Comment voulez-vous configurer maven-plugin-jetée utiliser le CustomWebAppClassLoader:)

Était-ce utile?

La solution

Vous pouvez utiliser les fichiers de configuration de contexte. Il existe 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 référence de configuration Syntaxe pour plus de détails.)

Autres conseils

Comme une alternative à l'aide d'un fichier de configuration de contexte, vous pouvez définir les attributs de classloader dans le fichier pom.xml, pour la jetée> = 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: plug-in Jetty webapp configuration

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top