Общее расположение Tomcat для общих jar-файлов веб-приложений

* строгий текст * У меня есть несколько веб-приложений, которые используют некоторые общие зависимости, например коннектор mongo google guava jodatime

Я подумал о том, чтобы вынуть их из webapp / WEB-INF / lib и поместить в какой-нибудь каталог common-lib, таким образом я могу уменьшить размер файла war и развернутого каталога.

Я пытаюсь переопределить расположение файла jar загрузчика общих классов, отредактировав catalina.properties, находящийся в tomcat- / conf

common.loader = $ {catalina.base} / lib, $ {catalina.base} / lib / .jar, $ {catalina.home} / lib, $ {catalina.home} / lib / .jar, $ {catalina.home} / lib / ext / .jar, $ {catalina.base} / common-lib / .jar

Я убеждаюсь, что все общие зависимости и транзитивные зависимости скопированы в common-lib.

Теперь я получаю ClassNotFoundException, любую подсказку о первопричине этой проблемы.

Еще один вопрос, могу ли я ожидать какого-либо сокращения использования памяти путем перемещения jar-файлов в общую библиотеку


person Isuru    schedule 14.10.2013    source источник
comment
замените .jar на *.jar. ups, у вас есть символы звездочки. какой именно класс NotFound? может быть, JAR, которые вы переместили в общий загрузчик, зависят от некоторых JAR, которые остались позади?   -  person Grzegorz Grzybek    schedule 14.10.2013
comment
Привет, я поместил * .jar в свой исходный пост, кажется, у полужирного варианта stackoverflow есть проблема с * посередине :), в любом случае для следующего вопроса, который вы задали   -  person Isuru    schedule 14.10.2013
comment
Вы пытались поместить общие банки в папку lib в Tomcat?   -  person Jhanvi    schedule 14.10.2013
comment
Я не думаю, что их можно было бы уменьшить, перемещая jar-файлы, поскольку каждое веб-приложение по-прежнему использует то же количество jar-файлов, которое было необходимо раньше. Хотя, если удалить ненужные банки, то да, это уменьшение памяти.   -  person Ashish    schedule 14.10.2013
comment
Привет, я поместил * .jar в свой исходный пост, похоже, у полужирного варианта stackoverflow есть проблема с * в середине :), в любом случае следующий вопрос, который вы задали, ClassNotFoundException исходит из класса, который не находится внутри common-lib, его из класса который находится внутри веб-приложения   -  person Isuru    schedule 14.10.2013
comment
@Jhanvi я пробовал тоже не получилось,   -  person Isuru    schedule 14.10.2013


Ответы (1)


Я бы посоветовал восстановить tomcat до исходного состояния установки без изменений, а затем добавить ваши jar-файлы (mongo, guava и т. Д.) В каталог /lib в каталоге установки tomcat, как описано в здесь.

Кроме того, было бы полезно, если вы опубликуете, какой класс отсутствует.

person David Rabinowitz    schedule 15.10.2013