Вопрос

У меня очень неприятная проблема:

Для моего проекта (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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top