2017-03-01 476 views
1

我有cxf的spring-boot应用程序。当我运行它,我得到一个异常:Cxf + Spring引导(org.apache.cxf.bus.extension.ExtensionException)

[2017.03.01 17:37:35.839 MSK] [DEBUG] [o.a.c.c.s.ConfigurerImpl] [main] 
[Could not determine bean name for instance of class org.apache.cxf.wsdl11.WSDLManagerImpl.] 
[2017.03.01 17:37:35.841 MSK] [DEBUG] [o.a.c.r.DefaultResourceManager] 
[main] [resolving resource <org.apache.cxf.wsdl11.WSDLManagerImpl/bus> type <interface org.apache.cxf.Bus>] 
[2017.03.01 17:37:35.842 MSK] [DEBUG] [o.a.c.r.DefaultResourceManager] 
[main] [resolving resource <null> type <interface org.apache.cxf.Bus>] 
[2017.03.01 17:37:35.870 MSK] [DEBUG] [o.a.c.b.e.Extension] [main] [Could not load optional extension org.apache.cxf.binding.xml.wsdl11.XMLWSDLExtensionLoader] 

org.apache.cxf.bus.extension.ExtensionException: Could not create object of extension class org.apache.cxf.binding.xml.wsdl11.XMLWSDLExtensionLoader. 
    at org.apache.cxf.bus.extension.Extension.load(Extension.java:241) 
    at org.apache.cxf.bus.extension.ExtensionManagerImpl.loadAndRegister(ExtensionManagerImpl.java:213) 
    at org.apache.cxf.bus.extension.ExtensionManagerImpl.getBeansOfType(ExtensionManagerImpl.java:348) 
    at org.apache.cxf.bus.spring.SpringBeanLocator.getBeansOfType(SpringBeanLocator.java:153) 
    at org.apache.cxf.wsdl11.WSDLManagerImpl.setBus(WSDLManagerImpl.java:122) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1426) 

跳过一些行和

CXF的
Caused by: java.lang.NegativeArraySizeException: null 
    at org.objectweb.asm.Frame.a(Unknown Source) 
    at org.objectweb.asm.MethodWriter.visitMaxs(Unknown Source) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 

依赖性和春季启动

<dependency> 
    <groupId>org.apache.cxf</groupId> 
    <artifactId>cxf-rt-databinding-jaxb</artifactId> 
    <version>${cxf.version}</version> 
    </dependency> 
    <dependency> 
    <groupId>org.apache.cxf</groupId> 
    <artifactId>cxf-rt-management</artifactId> 
    <version>${cxf.version}</version> 
    </dependency> 
    <dependency> 
    <groupId>org.apache.cxf</groupId> 
    <artifactId>cxf-spring-boot-starter-jaxws</artifactId> 
    <version>${cxf.version}</version> 
    </dependency> 
    <dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-web-services</artifactId> 
</dependency> 

春季启动 - 1.4.1 CXF - 3.1.7

请帮忙!!我怎样才能找到一个错误?

+0

您可以在这里添加cxf配置吗?第一个和最后一个依赖项是可选的 –

+0

看起来你的项目中存在一些jar冲突。你只需要' org.apache.cxf CXF-RT-前端-JAXWS $ {} cxf.version org.apache.cxf CXF-RT-运输 - http-hc $ {cxf.version} '对于cxf jaxws。 –

回答

0

看来你的项目中有多个asm依赖关系。您可以通过从根项目执行mvn dependency:tree或在项目构建后查看工件来查找它们。 对于与CXF 3.x一起使用,您应该具有依赖关系org.ow2.asm:asm:jar:5.x.x和更高版本。

希望有所帮助。