CXF冲突依赖关系

问题描述 投票:1回答:2

我的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)
java web-services maven jakarta-ee cxf
2个回答
2
投票

此错误的原因是存在较旧版本的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文件,然后单击依赖性层次结构以查看项目中的其他冲突。任何依赖关系都可能导致冲突。


0
投票

apache xerces的多个依赖关系可能会导致此问题。转到IDE中的依赖项层次结构树,然后简单地排除xerces依赖项,即可正常工作。

您的代码中是否具有mockrunner-jms依赖项?尝试从中排除apache xerces传递依赖。

© www.soinside.com 2019 - 2024. All rights reserved.