Загрузка внешней библиотеки в веб-приложение Java

Мой сценарий следующий:

У меня есть WebApp.war, который развернут в контейнере сервлетов. Этот WebApp.war содержит в WEB-INF/lib следующие библиотеки:

  • lib_a.jar
  • lib_b.jar

У меня есть еще одна библиотека, например, lib_vendor.jar, которую я не могу развернуть в WebApp/WEB-INF/lib из-за проблем с лицензированием, поэтому я разрешила нашим клиентам копировать эту библиотеку в tomcat / lib после установки приложения. Но так как lib_vendor.jar требует lib_a.jar и lib_b.jar, которые загружаются в загрузчик классов веб-приложения, я не могу использовать lib_vendor.jar.

Как я могу загрузить внешнюю библиотеку (не в WEB-INF/lib) в тот же загрузчик классов веб-приложения?

1 ответ

Поскольку вы используете Tomcat, вы можете использовать VirtualWebappLoader.

Добавить META-INF/context.xml ти

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/somepath/myapp">
    <Loader className="org.apache.catalina.loader.VirtualWebappLoader"
              virtualClasspath="/somedir/*.jar"/>
</Context>

Помните также, что атрибут virtualClasspath должен быть абсолютным путем, как правильно указано в комментарии ниже.

Другие вопросы по тегам