-
Type:
Bug
-
Status: Closed
-
Priority:
Major
-
Resolution: Done
-
Affects Version/s: jboss-fuse-6.3
-
Fix Version/s: jboss-fuse-6.3
-
Component/s: CXF
-
Labels:None
-
Sprint:7.0 Sprint 1, Sprint 5 - towards ER2
When I am using Swagger2Feature with CXF I get an exception
2016-05-05 10:44:52,345 | ERROR | ion(4)-127.0.0.1 | BlueprintContainerImpl | 23 - org.apache.aries.blueprint.core - 1.4.4 | Unable to start blueprint container for bundle org.jboss.qe.cxf.rs.swagger2feature-test/1.0.0.SNAPSHOT |
org.osgi.service.blueprint.container.ComponentDefinitionException: Unable to initialize bean contactService
|
at org.apache.aries.blueprint.container.BeanRecipe.runBeanProcInit(BeanRecipe.java:714) |
at org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRecipe.java:824) |
at org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:787) |
at org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:79) |
at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_74] |
at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:88) |
at org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:247) |
at org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:183) |
at org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:682) |
at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:377) |
at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:269) |
at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:294) |
at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:263) |
at org.apache.aries.blueprint.container.BlueprintExtender.modifiedBundle(BlueprintExtender.java:253) |
at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:500) |
at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:433) |
at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$AbstractTracked.track(BundleHookBundleTracker.java:725) |
at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.bundleChanged(BundleHookBundleTracker.java:463) |
at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$BundleEventHook.event(BundleHookBundleTracker.java:422) |
at org.apache.felix.framework.util.SecureAction.invokeBundleEventHook(SecureAction.java:1127) |
at org.apache.felix.framework.util.EventDispatcher.createWhitelistFromHooks(EventDispatcher.java:696) |
at org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:484) |
at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4429) |
at org.apache.felix.framework.Felix.startBundle(Felix.java:2100) |
at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:976) |
at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:963) |
at org.apache.aries.jmx.framework.Framework.startBundle(Framework.java:459) |
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.8.0_74] |
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)[:1.8.0_74] |
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.8.0_74] |
at java.lang.reflect.Method.invoke(Method.java:498)[:1.8.0_74] |
at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71)[:1.8.0_74] |
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.8.0_74] |
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)[:1.8.0_74] |
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.8.0_74] |
at java.lang.reflect.Method.invoke(Method.java:498)[:1.8.0_74] |
at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275)[:1.8.0_74] |
at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:112)[:1.8.0_74] |
at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:46)[:1.8.0_74] |
at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:237)[:1.8.0_74] |
at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:138)[:1.8.0_74] |
at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:252)[:1.8.0_74] |
at javax.management.StandardMBean.invoke(StandardMBean.java:405)[:1.8.0_74] |
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)[:1.8.0_74] |
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)[:1.8.0_74] |
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.8.0_74] |
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)[:1.8.0_74] |
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.8.0_74] |
at java.lang.reflect.Method.invoke(Method.java:498)[:1.8.0_74] |
at org.apache.karaf.management.internal.MBeanInvocationHandler.invoke(MBeanInvocationHandler.java:60)[46:org.apache.karaf.management.server:2.4.0.redhat-630045] |
at com.sun.proxy.$Proxy2.invoke(Unknown Source)[:]
|
at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1468) |
at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76) |
at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1309) |
at java.security.AccessController.doPrivileged(Native Method)[:1.8.0_74] |
at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1408) |
at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829) |
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.8.0_74] |
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)[:1.8.0_74] |
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.8.0_74] |
at java.lang.reflect.Method.invoke(Method.java:498)[:1.8.0_74] |
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:323)[:1.8.0_74] |
at sun.rmi.transport.Transport$1.run(Transport.java:200)[:1.8.0_74] |
at sun.rmi.transport.Transport$1.run(Transport.java:197)[:1.8.0_74] |
at java.security.AccessController.doPrivileged(Native Method)[:1.8.0_74] |
at sun.rmi.transport.Transport.serviceCall(Transport.java:196)[:1.8.0_74] |
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)[:1.8.0_74] |
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)[:1.8.0_74] |
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)[:1.8.0_74] |
at java.security.AccessController.doPrivileged(Native Method)[:1.8.0_74] |
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)[:1.8.0_74] |
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_74] |
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_74] |
at java.lang.Thread.run(Thread.java:745)[:1.8.0_74] |
Caused by: java.lang.NoClassDefFoundError: io/swagger/jaxrs/listing/ApiListingResource
|
at org.apache.cxf.jaxrs.swagger.Swagger2Feature.addSwaggerResource(Swagger2Feature.java:79) |
at org.apache.cxf.jaxrs.swagger.AbstractSwaggerFeature.initialize(AbstractSwaggerFeature.java:64) |
at org.apache.cxf.jaxrs.JAXRSServerFactoryBean.applyFeatures(JAXRSServerFactoryBean.java:252) |
at org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:196) |
at org.apache.cxf.jaxrs.JAXRSServerFactoryBean.init(JAXRSServerFactoryBean.java:142) |
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.8.0_74] |
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)[:1.8.0_74] |
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.8.0_74] |
at java.lang.reflect.Method.invoke(Method.java:498)[:1.8.0_74] |
at org.apache.aries.blueprint.utils.ReflectionUtils.invoke(ReflectionUtils.java:299) |
at org.apache.aries.blueprint.container.BeanRecipe.invoke(BeanRecipe.java:956) |
at org.apache.aries.blueprint.container.BeanRecipe.runBeanProcInit(BeanRecipe.java:712) |
... 73 more |
Caused by: java.lang.ClassNotFoundException: io.swagger.jaxrs.listing.ApiListingResource not found by org.apache.cxf.cxf-rt-rs-service-description [124] |
at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1556) |
at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:77) |
at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1993) |
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)[:1.8.0_74] |
... 85 more |
My jaxrs server configuration:
<!-- CXF Swagger2Feature -->
|
<bean id="swagger2Feature" class="org.apache.cxf.jaxrs.swagger.Swagger2Feature"> |
<property name="basePath" value="/app/swaggerSample"/> |
</bean>
|
|
|
<jaxrs:server id="contactService" address="/rest"> |
<jaxrs:serviceBeans>
|
<bean class="org.jboss.qe.cxf.rs.swagger.basic.ContactServiceImpl"/> |
</jaxrs:serviceBeans>
|
<jaxrs:features>
|
<ref bean="swagger2Feature" /> |
</jaxrs:features>
|
</jaxrs:server>
|
It seems that Apache CXF JAX-RS Service Description bundle is already installed (system bundle) and newly installed bundles (from feature cxf-rs-description-swagger2) which contains swagger are not available for Apache CXF JAX-RS Service Description which is already resolved. So I update bundle Apache CXF JAX-RS Service Description after instalation feature cxf-rs-description-swagger2. This problem is solved but there is another problem now. I get
java.net.MalformedURLException: no protocol: BasicTest.jar
|
at java.net.URL.<init>(URL.java:593) |
at java.net.URL.<init>(URL.java:490) |
at java.net.URL.<init>(URL.java:439) |
at org.reflections.vfs.Vfs$DefaultUrlTypes$4.createDir(Vfs.java:324) |
at org.reflections.vfs.Vfs.fromURL(Vfs.java:108) |
at org.reflections.vfs.Vfs.fromURL(Vfs.java:100) |
at org.reflections.Reflections.scan(Reflections.java:237) |
at org.reflections.Reflections.scan(Reflections.java:204) |
at org.reflections.Reflections.<init>(Reflections.java:129) |
at io.swagger.jaxrs.config.BeanConfig.classes(BeanConfig.java:206) |
at io.swagger.jaxrs.config.BeanConfig.setScan(BeanConfig.java:170) |
at org.apache.cxf.jaxrs.swagger.Swagger2Feature.addSwaggerResource(Swagger2Feature.java:112) |
at org.apache.cxf.jaxrs.swagger.AbstractSwaggerFeature.initialize(AbstractSwaggerFeature.java:64) |
at org.apache.cxf.jaxrs.JAXRSServerFactoryBean.applyFeatures(JAXRSServerFactoryBean.java:252) |
at org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:196) |
at org.apache.cxf.jaxrs.JAXRSServerFactoryBean.init(JAXRSServerFactoryBean.java:142) |
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.apache.aries.blueprint.utils.ReflectionUtils.invoke(ReflectionUtils.java:299) |
at org.apache.aries.blueprint.container.BeanRecipe.invoke(BeanRecipe.java:956) |
at org.apache.aries.blueprint.container.BeanRecipe.runBeanProcInit(BeanRecipe.java:712) |
at org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRecipe.java:824) |
at org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:787) |
at org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:79) |
at java.util.concurrent.FutureTask.run(FutureTask.java:266) |
at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:88) |
at org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:247) |
at org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:183) |
at org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:682) |
at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:377) |
at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:269) |
at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:294) |
at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:263) |
at org.apache.aries.blueprint.container.BlueprintExtender.modifiedBundle(BlueprintExtender.java:253) |
at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:500) |
at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:433) |
at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$AbstractTracked.track(BundleHookBundleTracker.java:725) |
at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.bundleChanged(BundleHookBundleTracker.java:463) |
at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$BundleEventHook.event(BundleHookBundleTracker.java:422) |
at org.apache.felix.framework.util.SecureAction.invokeBundleEventHook(SecureAction.java:1127) |
at org.apache.felix.framework.util.EventDispatcher.createWhitelistFromHooks(EventDispatcher.java:696) |
at org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:484) |
at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4429) |
at org.apache.felix.framework.Felix.startBundle(Felix.java:2100) |
at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:976) |
at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:963) |
at org.apache.aries.jmx.framework.Framework.startBundle(Framework.java:459) |
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 sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71) |
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 sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275) |
at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:112) |
at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:46) |
at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:237) |
at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:138) |
at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:252) |
at javax.management.StandardMBean.invoke(StandardMBean.java:405) |
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) |
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) |
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.apache.karaf.management.internal.MBeanInvocationHandler.invoke(MBeanInvocationHandler.java:60) |
at com.sun.proxy.$Proxy2.invoke(Unknown Source)
|
at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1468) |
at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76) |
at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1309) |
at java.security.AccessController.doPrivileged(Native Method)
|
at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1408) |
at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829) |
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 sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:323) |
at sun.rmi.transport.Transport$1.run(Transport.java:200) |
at sun.rmi.transport.Transport$1.run(Transport.java:197) |
at java.security.AccessController.doPrivileged(Native Method)
|
at sun.rmi.transport.Transport.serviceCall(Transport.java:196) |
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568) |
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826) |
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683) |
at java.security.AccessController.doPrivileged(Native Method)
|
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682) |
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) |
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) |
at java.lang.Thread.run(Thread.java:745) |
I am not able to find where is the problem. The swagger endpoint works incorrectly.