2015-02-11 481 views
2

我的cxf依賴關係有問題。有一個非常大的項目,工作和有很多的依賴關係。CXF衝突xmlschema和xmlschema-core依賴關係

我的問題是與xmlschema和xmlschema核心依賴關係。在我的pom文件中沒有舊版本的依賴關係,但是我收到以下異常。你對這個問題有什麼想法嗎?

java.lang.NoSuchFieldError: QUALIFIED 
at org.apache.cxf.service.model.SchemaInfo.setSchema(SchemaInfo.java:146) 
at org.apache.cxf.wsdl11.SchemaUtil.extractSchema(SchemaUtil.java:136) 
at org.apache.cxf.wsdl11.SchemaUtil.getSchemas(SchemaUtil.java:73) 
at org.apache.cxf.wsdl11.SchemaUtil.getSchemas(SchemaUtil.java:65) 
at org.apache.cxf.wsdl11.SchemaUtil.getSchemas(SchemaUtil.java:60) 
at org.apache.cxf.wsdl11.WSDLServiceBuilder.getSchemas(WSDLServiceBuilder.java:372) 
at org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(WSDLServiceBuilder.java:339) 
at org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(WSDLServiceBuilder.java:203) 
at org.apache.cxf.wsdl11.WSDLServiceFactory.create(WSDLServiceFactory.java:142) 
at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromWSDL(ReflectionServiceFactoryBean.java:383) 
at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:506) 
at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:242) 
at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:205) 
at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:101) 
at org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.java:90) 
at org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFactoryBean.java:155) 
at org.apache.cxf.jaxws.JaxWsProxyFactoryBean.create(JaxWsProxyFactoryBean.java:155) 
at org.apache.cxf.jaxws.ServiceImpl.createPort(ServiceImpl.java:465) 
at org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:332) 
at org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:319) 

回答

1

如果您得到java.lang.NoSuchFieldError:QUALIFIED錯誤。它也來自依賴confilict,但最奇怪的是依賴關係層次結構中沒有依賴關係。上述異常的根本原因是某些依賴項中缺少版本。我需要cxf-rt-core 2.5.2,它具有xmlschema-core的內部依賴性。以下代碼塊取自cxf-rt-core 2.5.2 pom。

<dependency> 
     <groupId>org.apache.ws.xmlschema</groupId> 
     <artifactId>xmlschema-core</artifactId> 
</dependency> 

上面沒有版本信息。這會導致錯誤。如果在pom文件中沒有提供任何版本,則它與存儲庫中的第一個依賴項相匹配,它通常是舊版本。應該仔細研究依賴關係及其版本。如果存在沒有版本的依賴項,則可能會導致類似的錯誤。應按照this answer中的說明排除所有相關性衝突,然後更新所有相關性將解決該問題。應該特別注意本地存儲庫,並確保沒有舊版本的依賴關係。