Tomcat-приложение загружает весь свой код из jar-файла - где сказано использовать этот jar-файл? - PullRequest
3 голосов
/ 17 ноября 2010

Это Java-приложение, которое я использую, написанное другими разработчиками, структурировано стандартным способом. Однако файлы .class не находятся в WEB-INF/classes, вместо этого они группируются в .jar и хранятся в WEB-INF/lib/myapp.jar.

Проблема в том, что я не могу найти, где программа говорит Tomcat загрузить myapp.jar для файлов классов. Приложение работает нормально, но как узнать, что myapp.jar?

Я пытался grep пропинговать практически все conf-файлы (в Tomcat и внутри приложения), и нигде не могу сослаться на этот myapp.jar файл.

Ответы [ 3 ]

4 голосов
/ 17 ноября 2010

Исходя из того, что сказал @nhnb, здесь - это объяснение Apache о том, как работает classLoader Tomcat.

WebappX - Загрузчик классов создается для каждого веб-приложения, которое развернут в одном Tomcat 6 пример. Все распакованные классы и ресурсы в / WEB-INF / классах каталог вашего веб-приложения архив, плюс классы и ресурсы в JAR-файлы в каталоге / WEB-INF / lib каталог вашего веб-приложения архив, становятся видимыми для содержащий веб-приложение, но нет др.

Так что, если вы хотите сослаться на myApp.jar, вы должны находиться под тем же загрузчиком классов этого веб-приложения, что по сути означает, что вы должны быть в одном веб-приложении.

Либо загрузите банку в TOMCAT_HOME/lib (Tomcat 6 и выше) или TOMCAT_HOME/common/lib. Все найденные банки видны всем загрузчикам классов.

3 голосов
/ 17 ноября 2010

Tomcat просто загружает все файлы .jar в папку WEB-INF / lib.

2 голосов
/ 17 ноября 2010

Это на самом деле поведение по умолчанию для контейнера сервлетов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...