Как установить пользовательский WebAppClassLoader в Jetty через config? - PullRequest
0 голосов
/ 14 сентября 2010

Я пытаюсь настроить Jetty (6.x) WebAppContext с пользовательским подклассом WebAppClassLoader .В коде (Scala) это просто так:

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

Это прекрасно работает при встраивании Jetty.Однако в производственном процессе я просто развертываю файл военных действий на отдельном экземпляре Jetty, поэтому у меня нет возможности настраивать такие вещи в таком коде.

Я не могу понять, как сделать то же самое с помощьюФайлы конфигурации Jetty.Любая помощь приветствуется.

Бонус: как бы вы настроили maven-jetty-plugin для использования CustomWebAppClassLoader:)

Ответы [ 2 ]

1 голос
/ 14 сентября 2010

Вы можете использовать файлы конфигурации контекста.В каталоге 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>

(см. Справочник по конфигурации синтаксиса XML для Jetty для получения более подробной информации)..)

0 голосов
/ 27 апреля 2015

В качестве альтернативы использованию файла конфигурации контекста вы можете установить атрибуты загрузчика классов в файле 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

...