Как можно установить пользовательский веб -аппласс -загрузчик в причале через конфигурацию?

StackOverflow https://stackoverflow.com/questions/3712057

Вопрос

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

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

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

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

Бонус: как бы вы настроили Maven-Jetty-Plugin Чтобы использовать CustomWebAppClassloader :)

Это было полезно?

Решение

Вы можете использовать файлы контекста контекста. Есть примеры в 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 Больше подробностей.)

Другие советы

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

Справка: Плагин придунка конфигурация веб -приложения

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top