Tomcat CLASSPATH - PullRequest
       31

Tomcat CLASSPATH

2 голосов
/ 23 января 2010

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

Мой проект (JSP, Servlet) требует Xerces-J 2.8.1 или выше. Но на нашем сервере (Tomcat 5.5) xerces 2.6.2 всегда появляется первым, что приводит к серьезной ошибке.

Я проверил $ ​​CLASSPATH и провел некоторые очистки. Тем не менее, Xerces 2.6.2 все еще там. Может кто-нибудь сказать мне, как узнать, где этот xerces 2.6.2?

Ответы [ 2 ]

1 голос
/ 23 января 2010

Прежде всего, переменная среды $CLASSPATH (и ее эквивалент для Windows %CLASSPATH%) игнорируется на чем-либо еще , чем команда времени выполнения Java (java.exe в Windows ), который был выполнен без любого из аргументов -cp, -classpath и -jar. Не путайте этот термин с классическим путем real . Эта переменная окружения просто предназначена для (плохого) удобства для начинающих, которые не хотят вводить весь аргумент -cp или -classpath каждый раз.

Что касается вашей реальной проблемы, Tomcat внутренне также использует Xerces для анализа XML-файлов, как описано в этом документе . Если у вас есть полный контроль над сервером, лучшее, что вы можете сделать, это поместить более новый файл JAR Xerces в папку /common/endorsed, как описано в документе.

1 голос
/ 23 января 2010

Если вы включаете jar Xerces в свое веб-приложение, то это зависит от того, как настроена загрузка классов для вашего приложения и / или сервера. Здесь есть информация об этом:

http://tomcat.apache.org/tomcat-5.5-doc/class-loader-howto.html

...