java - CXF 冲突 Xerces 依赖项

标签 java web-services maven jakarta-ee cxf

我的 cxf 依赖项有问题。我正在处理一个非常庞大的项目,并且有很多依赖项。

我的问题是 xerces 依赖性。我的 pom 文件中没有旧版本的 xerces,但我收到以下异常。您对这个问题有什么想法吗?

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)

最佳答案

此错误的原因是存在旧版本的 Xerces 依赖项。它可能是显式添加的,也可能来自另一个依赖项。第一种情况很容易解决,旧版本应该更改为从未版本。 (2.11.0版本没有错误)

依赖冲突可能来自另一个依赖,就像我的例子一样。某些依赖项可能引用了 Xerces 依赖项。应特别注意项目中的依赖层次结构。在我的例子中,JTS 依赖项引用了旧版本的 Xerces 依赖项。

<dependency>
 <groupid>com.vividsolutions</groupid>
 <artifactid>jts</artifactid>
 <version>1.11</version> 
</dependency>

JTS 依赖项内部引用了 Xerces 2.4.0。在JTS pom中可以看到。

<dependency>
        <groupId>xerces</groupId>
         <artifactId>xercesImpl</artifactId>
         <version>2.4.0</version>
</dependency>

可以有任何可以在内部使用 Xerces 依赖项的依赖项。应跟踪所有依赖关系层次结构,并应排除旧版本的 Xerces,如下所示。

<dependency>
 <groupid>com.vividsolutions</groupid>
 <artifactid>jts</artifactid>
 <version>1.11</version>
        <exclusions>
          <exclusion>
   <groupId>xerces</groupId>
   <artifactId>xercesImpl</artifactId>
   </exclusion>
        </exclusions> 
</dependency>

在eclipse中打开pom文件,点击dependency hierachy查看项目中的其他冲突。任何依赖都可能导致冲突。

关于java - CXF 冲突 Xerces 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28463376/

相关文章:

java - 使用java生成带有 "&"的xml文件

c# - 如何使用微软的 Dynamics AX 类?

java - Camel + 速度 : how to put things in Velocity context

java - 从java更新mysql数据库

web-services - 测试 SOAP Web 服务时获取 SSLHandshakeException

Maven:使用程序集作为结果 Artifact -appendAssemblyId == false?

spring - wicket spring hibernate 入门

search - 如何从命令行确定 Maven Artifact 是否在我的仓库中?

java - 如何在 Hibernate 注解中创建 Tinyint Field

c# - .NET Web 服务水合物自定义类