Java: какой класс Apache Digester?

#java #tomcat #servlets #apache-commons

#java #tomcat #сервлеты #apache-общий доступ #apache-commons

Вопрос:

Я поддерживаю веб-приложение / Java-сервлет, который не запускается. Проблема оказывается относительно простым java.lang.NoClassDefFoundError исключением, вызванным org.apache.webapp.balancer.RulesParser .

Класс filter, который генерирует исключение, ожидает, что Digester класс будет существовать в пакете:

 org/apache/tomcat/util/digester
  

Похоже, что этот пакет не существует в библиотеке приложений, но экземпляр класса в:

 org/apache/commons/digester
  

Который является частью нашего текущего приложения / проекта. Оба класса расширяются org.xml.sax.helpers.DefaultHandler поэтому я предполагаю, что это один и тот же класс (но, вероятно, разные даты / версии)?

Класс RulesParser существует в catalina-balancer.jar (у меня нет исходного кода), поэтому я не могу изменить импорт пакета напрямую.

Какова более поздняя версия класса и какую версию я должен использовать (и как)?

Комментарии:

1. Класс, который вы ищете, находится в папке Tomcat. %TOMCAT_HOME%/server/lib/tomcat-util.jar Убедитесь, что вы не переопределили classpath / loader по умолчанию и забыли добавить в каталоги Tomcat

2. Вы совершенно правы. Можете ли вы вставить свой комментарий в качестве ответа, чтобы я мог проголосовать / принять его. 🙂

Ответ №1:

Класс, который вы ищете, находится в папке Tomcat. %TOMCAT_HOME%/server/lib/tomcat-util.jar Убедитесь, что вы не переопределили classpath / loader по умолчанию и забыли добавить в каталоги Tomcat