Hello Tanuja,

The SwaggerFeature was introduced in Apache CXF 3.0 [1], but as far as I
understand, you are trying to use Apache CXF 2.4.6 and pulling the
cxf-rt-rs-service-description-3.0.0.jar with it. If that is the case, 
it is not going to work out. The recommendation would be to update to 
one of the supported Apache CXF releases [2]. 

Thank you.

[1] https://issues.apache.org/jira/browse/CXF-5379
[2] https://cxf.apache.org/download.html

Best Regards,
    Andriy Redko

TS> Hello everyone,

TS> My project uses cxf-2.4.6 version. There is no REST API documentation as of
TS> date.
TS> I plan to create one and have been exploring various options for this
TS> version.

TS> Official documentation mentions that SwaggerFeature needs to be used for
TS> this version.
TS> https://cwiki.apache.org/confluence/display/CXF20DOC/Swagger2Feature

TS> As per the above link,

TS> *For generating Swagger 1.2
TS> <https://github.com/swagger-api/swagger-spec/blob/master/versions/1.2.md>
TS> documents,
TS> you can use SwaggerFeature instead of Swagger2Feature (for CXF versions <=
TS> 3.1.x).*

TS> But, I am lost here.

TS> Added all the needed jars. Ant is used as a build tool; hence, individual
TS> jars are added manually.

TS> scala-library-2.7.7.jar
TS> swagger-jaxrs_2.10-1.3.13.jar
TS> swagger-ui-2.1.2.jar
TS> swagger-annotations-1.5.2.jar
TS> swagger-jaxrs-1.5.2.jar
TS> cxf-rt-rs-service-description-3.0.0.jar

TS> I've added this bean in the cxfbeans.xml.

TS>      <!-- CXF SwaggerFeature -->
TS>     <bean id="swaggerFeature"
TS> class="org.apache.cxf.jaxrs.swagger.SwaggerFeature">
TS>         <!-- customize some of the properties -->
TS>         <property name="basePath" value=""/>
TS>     </bean>

TS>  <bean class="com.test" id="testClass"/>

TS> <jaxrs:server address="/testService" id="testServiceId">
TS>       <jaxrs:serviceBeans>
TS>             <ref bean="testClass"/>
TS>       </jaxrs:serviceBeans>
TS>      <jaxrs:extensionMappings>
TS>             <entry key="xml" value="application/xml"/>
TS>             <entry key="json" value="application/json"/>
TS>       </jaxrs:extensionMappings>
TS>        <jaxrs:features>
TS>             <ref bean="swaggerFeature" />
TS>         </jaxrs:features>
TS> </jaxrs:server>

TS> Now, server doesn't start and I get this exception.

TS> org.springframework.beans.factory.BeanCreationException: Error creating
TS> bean with name ' testServiceId': Invocation of init method failed; nested
TS> exception is org.apache.cxf.service.factory.ServiceConstructionException
TS>  at
TS> 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1338)
TS> at
TS> 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)
TS> at
TS> 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
TS> at java.security.AccessController.doPrivileged(Native Method)
TS> at
TS> 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
TS> at
TS> 
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
TS> at
TS> 
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
TS> at
TS> 
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
TS> at
TS> 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
TS> at
TS> 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
TS> at
TS> 
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429)
TS> at
TS> 
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
TS> at
TS> 
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)
TS> at
TS> 
org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)
TS> at
TS> 
org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
TS> at
TS> 
org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
TS> at
TS> 
org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4727)
TS> at
TS> 
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5189)
TS> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
TS> at
TS> 
org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1403)
TS> at
TS> 
org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1393)
TS> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
TS> at
TS> 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
TS> at
TS> 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
TS> at java.lang.Thread.run(Thread.java:745)
TS> Caused by: org.apache.cxf.service.factory.ServiceConstructionException
TS> at
TS> 
org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:192)
TS> at sun.reflect.GeneratedMethodAccessor61.invoke(Unknown Source)
TS> at
TS> 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
TS> at java.lang.reflect.Method.invoke(Method.java:498)
TS> at
TS> 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1414)
TS> at
TS> 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1375)
TS> at
TS> 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335)
TS> ... 24 more
TS> Caused by: java.lang.NullPointerException
TS> at
TS> 
org.apache.cxf.jaxrs.swagger.SwaggerFeature.calulateDefaultResourcePackage(SwaggerFeature.java:69)
TS> at
TS> 
org.apache.cxf.jaxrs.swagger.SwaggerFeature.initialize(SwaggerFeature.java:46)
TS> at
TS> 
org.apache.cxf.jaxrs.JAXRSServerFactoryBean.applyFeatures(JAXRSServerFactoryBean.java:203)
TS> at
TS> 
org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:180)
TS> ... 30 more

TS> Regards,
TS> Sandy

Reply via email to