Вопрос
У меня очень неприятная проблема:
Для моего проекта (JSP, сервлет) требуется Xerces-J 2.8.1 или выше.Но на нашем сервере (Tomcat 5.5) первым всегда появляется xerces 2.6.2, что приводит к серьезной ошибке.
Я проверил $CLASSPATH и сделал несколько подчисток.Однако xerces 2.6.2 все еще существует.Может ли кто-нибудь сказать мне, как узнать, где находится этот xerces 2.6.2?
Решение
Прежде всего, переменная среды $CLASSPATH
(и его эквивалент для Windows %CLASSPATH%
) является игнорируется к что-нибудь еще чем команда времени выполнения Java (java.exe
в Windows), который выполняется без любой из -cp
, -classpath
и -jar
аргументы.Не путайте этот термин с настоящий путь к классам.Эта переменная среды предназначена просто для (плохого) удобства для начинающих, которые не хотят вводить весь текст целиком. -cp
или -classpath
аргумент каждый раз.
Что касается вашей реальной проблемы, Tomcat также использует Xerces для анализа XML-файлов, как описано в этот документ.Если у вас есть полный контроль над сервером, то лучшее, что вы можете сделать, это поместить новый файл JAR Xerces в папку /common/endorsed
папку, как описано в документе.
Другие советы
Если вы включаете jar Xerces в свое веб-приложение, это зависит от того, как настроена загрузка классов для вашего приложения и/или сервера.Информация об этом есть здесь:
http://tomcat.apache.org/tomcat-5.5-doc/class-loader-howto.html