Загрузка внешней библиотеки в веб-приложение 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 должен быть абсолютным путем, как правильно указано в комментарии ниже.