今天部署个war包到was8.5上出错,死活起不来。
检查日志报java.lang.ClassCastException: org.apache.xerces.jaxp.DocumentBuilderFactoryImpl incompatible with javax.xml.parsers.DocumentBuilderFactory
连spring配置文件都读不出来,看来是少了xercesImpl包,后来查原因发现是之前的项目有另外一个组件包含了这个jar,而新项目没有导入该组件。。
查了下资料,原来启动的时候,到底javax.xml.parsers.DocumentBuilderFactory的实现类用哪个还真有讲究。
以下转载自
http://www.blogjava.net/xiaomage234/archive/2008/09/12/228532.html
引用
sun和ibm都有一套xml的实现,sun的实现是打到jdk里面了。
但当加载的时候,如果ibm的实现jar包xercesImpl.jar的接口 xml-apis.jar [j2ee1.4 library 有]文件导入到classpath 里了的话:
1 如果xml-apis.jar先于 jre加载,那么 将采用 xercesImpl.jar的实现;
2 如果jre先加载,那么将用 sun的xml实现,而取这个实现的类又分别按顺序从4个位置取.
使用 javax.xml.parsers.DocumentBuilderFactory 系统属性。
使用 JRE 文件夹中的属性文件 "lib/jaxp.properties"。此配置文件格式为标准的 java.util.Properties 且包含实现类的完全限定名,其中实现类的键是上述定义的系统属性。 JAXP 实现只读取一次 jaxp.properties 文件,然后缓存其值供以后使用。如果首次尝试读取文件时,文件不存在,则不会再次尝试检查该文件是否存在。首次读取 jaxp.properties 后,其中的属性值不能再更改。
如果可以,使用 Services API(在 JAR 规范中进行了详细描述)来确定类名称。Services API 将查找在运行时可用的 jar 中 META-INF/services/javax.xml.parsers.DocumentBuilderFactory 文件中的类名。
平台默认的 DocumentBuilderFactory 实例。
这些过程,自己可以通过加vm参数 "-verbose"的方式进行跟踪
分享到:
相关推荐
%WebSphereHome%/AppServer/plugins
描述中提到的“解决javax.xml jar包缺失的问题,引进javax.xml.rpc-api-1.1.1.jar”,意味着在开发或运行某个Java项目时,可能会遇到由于缺少`javax.xml.rpc`相关的jar包导致的编译或运行错误。为了解决这个问题,...
【标题】"javax.xml.bind.jar" 是一个Java开发中常用的工具包,主要包含了Java对象到XML数据绑定的API,这是Java标准版(Java SE)的一部分,用于帮助开发者将Java类和XML文档之间的转换自动化,从而简化了XML处理。...
"javax.xml.rpc"是Java平台中的一个关键组件,主要用于实现基于XML的远程过程调用(XML-RPC)服务。这个框架允许Java应用程序通过HTTP协议来调用远程服务器上的方法,从而实现分布式计算。在Java EE环境中,它常与...
在Java开发中,`javax.xml.ws.Service` 是一个核心组件,属于Java API for XML Web Services (JAX-WS)的一部分,用于创建客户端和服务端的Web服务代理。报错通常表明缺少必要的依赖包,这可能会影响到程序的正常运行...
javax.xml.stream_1.0.1.v201004272200.jar
在集成阿里云移动推送时,部署到服务器的时候遇到了java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter 错误,产生原因是缺少javax.xml.bind.DatatypeConverter
在Android Studio中遇到"Unable to load class ‘javax.xml.bind.JAXBException‘"的错误,通常是由于Java运行时环境(JRE)或开发工具包(JDK)与项目的兼容性问题导致的。`javax.xml.bind.JAXBException`是Java的...
javax.xml.bind.jar和三个sqljdbc4x.jar;实测可用。用于sqlserver连接和出现Java 9 及以上 eclipse 链接 SQL数据库 抛出 java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter 异常
【javax.xml.ws.Service】是Java平台上用于Web服务客户端的一个核心接口,它位于Java Web Services (JWS) API中,主要用于创建和使用Web服务。这个接口是JAX-WS(Java API for XML Web Services)规范的一部分,它...
其次,`javax.xml.parsers`子包包含了XML解析器的工厂类,如`DocumentBuilderFactory`和`SAXParserFactory`。这些工厂类允许开发者按照需求配置解析器,如是否启用命名空间支持,然后通过`newDocumentBuilder()`或`...
Files contained in javax.ejb.jar: META-INF/MANIFEST.MF javax.ejb.AccessLocalException.class javax.ejb.AccessTimeout.class javax.ejb.ActivationConfigProperty...javax.xml.rpc.handler.MessageContext.class
jar包,官方版本,自测可用
安卓sdk找不到的api,因此需要引入额外的jar包1
META-INF / maven / org.glassfish.main.ejb / javax.ejb / pom.xml javax.ejb.AccessLocalException.class javax.ejb.AccessTimeout.class javax.ejb.ActivationConfigProperty.class javax.ejb.AfterBegin.class ...
jar包,官方版本,自测可用
标题 "javax.xml.bind jdk1.5缺包" 指出的问题是在使用Java 1.5版本时,遇到了与`javax.xml.bind`相关的类找不到的异常。具体来说,异常信息 "java.lang.ClassNotFoundException: ...