CXF 冲突 Xerces 依赖
CXF Conflicts Xerces Dependency
我的 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 hiearachy查看项目中的其他冲突。任何依赖都可能导致冲突。
apache xerces 的多重依赖可能会导致此问题。转到 IDE 中的依赖关系层次结构树并简单地排除 xerces 依赖关系,这应该可以正常工作。
您的代码中是否存在 mockrunner-jms 依赖项?尝试从中排除 apache xerces 传递依赖。
我的 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 hiearachy查看项目中的其他冲突。任何依赖都可能导致冲突。
apache xerces 的多重依赖可能会导致此问题。转到 IDE 中的依赖关系层次结构树并简单地排除 xerces 依赖关系,这应该可以正常工作。
您的代码中是否存在 mockrunner-jms 依赖项?尝试从中排除 apache xerces 传递依赖。