0 0

关于jre的rt.jar中org.w3c.xml包和 jboss4.0.2 lib\endorsed 下解析xml的包的版本冲突问题10

小弟不才,遇到了一个非常头疼的问题:

环境(jdk1.6+jboss4.0.2)

就是webservice调用第三方接口的时候,cxf因为需要使用org.w3c.dom.Document类,然后rt.jar中有这类,然后在 jboss的lib\endorsed 下的xml-apis.jar也有这个类,但是我看了xml-apis.jar的结构,发现了org.w3c.dom和rt下的结构一样,但是类的方法都会比rt.jar中少了很多。



错误信息如下:

Caused by: java.lang.NoSuchMethodError: org.w3c.dom.Document.setDocumentURI(Ljava/lang/String;)V
at org.apache.cxf.staxutils.StaxUtils.read(StaxUtils.java:869)
at org.apache.cxf.wsdl11.WSDLManagerImpl.loadDefinition(WSDLManagerImpl.java:226)
at org.apache.cxf.wsdl11.WSDLManagerImpl.getDefinition(WSDLManagerImpl.java:186)
at org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:92)
at org.apache.cxf.jaxws.ServiceImpl.initializePorts(ServiceImpl.java:203)
at org.apache.cxf.jaxws.ServiceImpl.<init>(ServiceImpl.java:147)
at org.apache.cxf.jaxws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:90)
at javax.xml.ws.Service.<init>(Service.java:56)





后来在查到了说是在jdk1.4之前,jdk没有完善的xml解析机制,所以就使用xml-apis.jar

但是现在我不知道该怎么解决,让cxf在引用org.w3c.dom下的类的时候引用的是rt下的,而不是jbossxml-apis.jar下面的



网上有说删除掉endorsed下的xercesImpl.jar和xml-apis.jar 删除掉,但是删掉以后就会有以下错误:



Caused by: java.lang.AbstractMethodError: org.apache.xerces.dom.ElementNSImpl.setUserData(Ljava/lang/String;Ljava/lang/Object;Lorg/w3c/dom/UserDataHandler;)Ljava/lang/Object;
at org.apache.cxf.staxutils.StaxUtils.addLocation(StaxUtils.java:1083)
at org.apache.cxf.staxutils.StaxUtils.readDocElements(StaxUtils.java:971)
at org.apache.cxf.staxutils.StaxUtils.readDocElements(StaxUtils.java:947)
at org.apache.cxf.staxutils.StaxUtils.read(StaxUtils.java:874)
at org.apache.cxf.wsdl11.WSDLManagerImpl.loadDefinition(WSDLManagerImpl.java:226)
at org.apache.cxf.wsdl11.WSDLManagerImpl.getDefinition(WSDLManagerImpl.java:186)
at org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:92)
at org.apache.cxf.jaxws.ServiceImpl.initializePorts(ServiceImpl.java:203)
at org.apache.cxf.jaxws.ServiceImpl.<init>(ServiceImpl.java:147)
at org.apache.cxf.jaxws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:90)
at javax.xml.ws.Service.<init>(Service.java:56)





至今没弄明白这是什么引起的,请大牛们赐教。。着急。。。
2012年5月17日 11:10
目前还没有答案

相关推荐

    对jre包里的rt.jar精简

    缺什么class文件,解压rt.jar后再放进去,用rar压缩工具重新打包成rt.zip,改名为rt.jar,然后替换自己的jre/lib目录下的rt.jar,这样反复执行,就得到了定制化的rt.jar。 其实依次方式也可以精简其他jar包。只要你肯...

    rt.jar包下载

    Java开发和运行环境中,`rt.jar`是一个至关重要的文件,它是Java运行时环境(JRE)的标准类库,包含了Java核心API的大部分实现。这个压缩包文件名为"rt.jar",通常位于JDK或JRE的`lib`目录下。在Java程序执行过程中...

    java,jdk中rt.jar包

    在使用`rt.jar`时,需要注意的是,它包含的是Oracle或OpenJDK实现的私有API,这些API可能会随着JDK版本的更新而改变,因此在生产环境中,尽量避免直接依赖`rt.jar`中的非公开类和接口,以免产生兼容性问题。...

    rt.jar JDK1.8源码

    JDK动态代理生成字节码,用到了ProxyGenerator.generateProxyClass()方法,这个是rt.jar包中的方法,而安装JDK之后的src.zip没有包含。苦于找不到源码,下载了一个又报错,代码也不全,这里给大家分享一下亲测可用的...

    sqljdbc_7.4.1.0_enu.tar.gz、mssql-jdbc-7.4.1.jre8.jar 等

    标签中的"sqlserverjdbc"是SQL Server JDBC驱动的简称,"mssqljdbc7"可能指的是这是驱动的第七个主要版本,"jdbc7.4.1"则表示这是JDBC 7.4.1版本,而".4.1.jre8.jar"再次强调了它是为Java 8设计的。这些标签有助于...

    src.zip(添加了其他rt.jar缺少的源码)

    rt.jar是Java开发工具(JDK)中的一个核心组件,它包含了Java运行时环境的基础类库,如java.lang、java.io和java.util等包。通常,rt.jar中的源码不包括在内,因为它们是Oracle或OpenJDK的封闭源代码部分。然而,这个...

    kingbase8-8.2.0.jre7.jar

    在实际应用中,"kingbase8-8.2.0.jre7.jar"还需要配合金仓数据库V8提供的其他工具和API,例如数据迁移工具、监控工具等,以实现完整的数据库管理功能。同时,为了确保系统的稳定性和安全性,开发者应定期更新驱动,...

    mssql-jdbc-6.4.0.jre8.jar

    DBC Driver 6.4 在每个安装包中包含三个 JAR 类库:mssql-jdbc-6.4.0.jre7.jar 、mssql-jdbc-6.4.0.jre8.jar 和 mssql-jdbc-6.4.0.jre9.jar 。 JDBC Driver 6.4 专门适用于各种主要 Java 虚拟机且受到这些虚拟机的...

    mssql-jdbc-7.4.1.jre8.jar

    标题中的“mssql-jdbc-7.4.1.jre8.jar”是一个特定版本的Microsoft SQL Server JDBC驱动程序,用于Java应用程序与SQL Server 2016之间的数据交互。这个驱动程序是Java Archive (JAR) 文件,包含了Java类和其他资源,...

    SQL Server_JDBC驱动【mssql-jdbc-6.4.0.jre8.jar】.rar

    `mssql-jdbc-6.4.0.jre8.jar`是针对Java 8的一个特定版本,确保与Java 8环境兼容。该驱动遵循JDBC标准,提供了连接、查询、更新和管理SQL Server数据库的能力。 **1. 安装与引入JDBC驱动** 首先,你需要将`mssql-...

    postgresql-9.4.1211.jre7.jar

    postgresql-9.4.1211.jre7.jar

    mssql-jdbc-6.4.0.jre7.jar

    Microsoft SQL Server JDBC 驱动程序 mssql-jdbc-6.4.0.jre7.jar 希望可以帮助到大家。

    jdk1.7.0_79 中rt.jar

    jdk1.7.0_79 中rt.jar

    mssql-jdbc-9.2.1.jre15.jar

    mssql-jdbc-9.2.1.jre15.jar

    mssql-jdbc-6.1.0.jre8.jar中文-英文对照文档.zip

    注:下文中的 *** 代表文件名中的组件名称。 # 包含: 中文-英文对照文档:【***-javadoc-API文档-中文(简体)-英语-对照版.zip】 jar包下载地址:【***.jar下载地址(官方地址+国内镜像地址).txt】 Maven依赖:【*...

    java rt.jar包

    3. **rt.jar的使用**:rt.jar通常位于JRE的lib目录下,Java虚拟机(JVM)在运行时会自动加载这个包中的类。开发者无需直接引用rt.jar,因为它是Java平台的一部分,会在编译和运行时自动包含在类路径中。 4. **相关...

    rt.jar源码

    《深入解析rt.jar源码》 rt.jar是Java运行时环境的核心类库,包含了Java标准库中的大部分核心类,如java.lang、java.io、java.util等包,它们构成了Java应用程序的基础。rt.jar源码的分析对于理解Java语言的底层...

    Java rt.jar源码

    rt.jar文件通常位于JDK安装目录的`jre/lib`或`lib`子目录下,其内容是Java开发和运行所必需的。由于rt.jar是二进制形式的Java类文件集合,因此在默认情况下,我们无法直接查看其内部的源代码。然而,对于开发者来说...

    java运行常用类rt.jar下载

    在提供的压缩包文件中,虽然没有具体的子文件名,但通常`rt.jar`内部结构是按包(package)组织的,每个包下有多个类文件(.class),这些类文件代表了Java的类和接口。解压`rt.jar`后,可以看到以`.class`为扩展名...

Global site tag (gtag.js) - Google Analytics