Hello everyone,

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

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

As per the above link,

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

But, I am lost here.

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

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

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

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

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

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

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

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

Regards,
Sandy

Reply via email to