Swimger与SpringMVC和CXF一起配置

时间:2014-11-26 11:21:42

标签: java cxf swagger

如何在一个项目中为api-docsSpringMVC生成数据Apache CXF? 现在swagger只显示SpringMVC的端点。我用了

的pom.xml

<!-- Swagger SpringMVC -->
<dependency>
    <groupId>com.mangofactory</groupId>
    <artifactId>swagger-springmvc</artifactId>
    <version>0.9.1</version>
</dependency>

的applicationContext.xml

<mvc:annotation-driven/>
<mvc:default-servlet-handler/>
<beans:bean class="com.mangofactory.swagger.configuration.SpringSwaggerConfig" />

我看到所有带@RequestMethod注释的类的REST端点。

如何实现资源列表以显示CXF端点? 我在cxf-servlet.xml

中尝试使用以下代码
<context:component-scan base-package="com.mydlarz.myapp.services" />

<!-- Swagger writers -->
<bean id="resourceWriter"
    class="com.wordnik.swagger.jaxrs.listing.ResourceListingProvider" />
<bean id="apiWriter"
    class="com.wordnik.swagger.jaxrs.listing.ApiDeclarationProvider" />
<!-- Swagger API listing resource -->
<bean id="swaggerResourceJSON"
    class="com.wordnik.swagger.jaxrs.listing.ApiListingResourceJSON" />

<cxf:bus>
    <cxf:features>
        <cxf:logging />
    </cxf:features>
</cxf:bus>

<!-- this scans the classes for resources -->
<bean id="swaggerConfig" class="com.wordnik.swagger.jaxrs.config.BeanConfig">
<property name="resourcePackage" value="com.mydlarz.myapp.services"/>
<property name="version" value="1.0.0"/>
<property name="basePath" value="http://localhost:8080/services"/>
<property name="title" value="Petstore sample app"/>
<property name="description" value="This is a app."/>
<property name="contact" value="apiteam@wordnik.com"/>
<property name="license" value="Apache 2.0 License"/>
<property name="licenseUrl" value="http://www.apache.org/licenses/LICENSE-2.0.html"/>
<property name="scan" value="true"/>
</bean>

<bean class="org.apache.cxf.jaxrs.JAXRSServerFactoryBean"
    init-method="create">
    <property name="address" value="/services/" />
    <property name="serviceBeans">
        <list>
            <ref bean="resultSEI" />
            <ref bean="trackSEI" />
            <ref bean="tournamentSEI" />

            <ref bean="swaggerResourceJSON" />
        </list>
    </property>
    <property name="providers">
        <list>
            <ref bean="jsonProvider" />
            <ref bean="exceptionMapper" />

            <!-- required for writing swagger classes -->
            <ref bean="resourceWriter" />
            <ref bean="apiWriter" />
        </list>
    </property>
</bean>

0 个答案:

没有答案