我有一个非常讨厌的问题:
我的项目(JSP,Servlet)需要Xerces-J 2.8.1或更高版本。但是在我们的服务器(Tomcat 5.5)上,xerces 2.6.2总是首先出现,导致严重的错误。
我检查了$ CLASSPATH并做了一些清理工作。但是,xerces 2.6.2仍然存在。谁能告诉我如何知道这个xerces 2.6.2在哪里?
答案 0 :(得分:1)
如果您在Web应用程序中包含Xerces jar,那么它取决于如何为您的应用程序和/或服务器配置类加载。这里有相关信息:
http://tomcat.apache.org/tomcat-5.5-doc/class-loader-howto.html
答案 1 :(得分:1)
首先,环境变量$CLASSPATH
(及其Windows等效%CLASSPATH%
)忽略 其他而不是Java运行时命令(Windows中的java.exe
)已执行而不任何-cp
,-classpath
和-jar
参数。不要将此术语混淆为真正的类路径。对于那些不想每次都输入整个-cp
或-classpath
参数的初学者来说,这个环境变量只是(差)方便。
关于您的实际问题,Tomcat在内部也使用Xerces来解析this document中概述的XML文件。如果您可以完全控制服务器,那么最好的办法是将较新的Xerces JAR文件放在/common/endorsed
文件夹中,如文档中所述。