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