Domanda

Sto cercando di configurare un molo (6.x) WebAppContext con una sottoclasse personalizzata di WebAppClassLoader . Nel codice (Scala), è semplicemente questo:

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

Questo funziona bene quando l'incorporamento Jetty. Nella produzione, però, ho solo distribuire un file di guerra a un'istanza pontile stand-alone, quindi non c'è alcuna possibilità di cose di configurazione in codice come questo.

Non riesco a capire come fare la stessa cosa con i file di configurazione di Jetty. Ogni aiuto è apprezzato.

Bonus: Come si configura Maven-molo-plugin per utilizzare il CustomWebAppClassLoader:)

È stato utile?

Soluzione

Si potrebbe utilizzare i file di configurazione contesto. Ci sono esempi nella directory contexts/.

Questo sarebbe qualcosa in queste righe:

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

(Vedere la Jetty XML Sintassi di riferimento di configurazione per maggiori dettagli.)

Altri suggerimenti

In alternativa all'utilizzo di un file di contesto di configurazione, è possibile impostare gli attributi classloader nel file pom.xml, per pontile> = 8.x per esempio Non la scansione di qualsiasi classe all'interno WEB-INF per una più rapida messa in servizio:

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

Riferimento: Jetty plug-in webapp configurazione

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top