io.swagger(1.5.2)集成cxf(2.7.18) spring(3.2.7.RELEASE) struts2(2.3.36)
一:参考文档:
https://github.com/swagger-api/swagger-samples/blob/master/java/java-jaxrs-cxf/src/main/webapp/index.html
https://github.com/swagger-api/swagger-samples/tree/master/java/java-resteasy-spring/src/main/webapp/WEB-INF
https://github.com/swagger-api/swagger-ui/tree/2.x/dist
二:配置
pom.xml
<!-- swagger -->
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-jaxrs</artifactId>
<version>1.5.2</version>
<exclusions>
<exclusion>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
</exclusion>
</exclusions>
</dependency>
复制https://github.com/swagger-api/swagger-ui/tree/2.x/dist的页面到项目,并根据配置修改swagger.index.html的url
security.xml增加
<http pattern="/**/*.json" security="none" />
cxf-service.xml增加
<bean id="swaggerListingResource" class="io.swagger.jaxrs.listing.ApiListingResource"/>
<bean id="swaggerWriter" class="io.swagger.jaxrs.listing.SwaggerSerializers"/>
<bean id="beanConfig" class="io.swagger.jaxrs.config.BeanConfig">
<property name="title" value="Swagger Sample App"/>
<property name="version" value="1.0.0" />
<property name="schemes" value="http" />
<property name="host" value="localhost:8080" />
<property name="basePath" value="xxxx"/>
<property name="resourcePackage" value="com.x.x.x.x"/>
<property name="scan" value="true"/>
</bean>
<jaxrs:server address="/swagger" id="swaggerApi">
<jaxrs:serviceBeans>
<ref bean="swaggerListingResource"></ref>
</jaxrs:serviceBeans>
<jaxrs:providers>
<ref bean="swaggerWriter" />
</jaxrs:providers>
</jaxrs:server>
其中<property name="resourcePackage" value="com.x.x.x.x"/>是要提供服务接口的服务,使用@Path,@Api,@ApiOperation等注解
三:错误:
使用1.5.0报错
Failed to scan JAR [file:/Users/wangql/deploy/gppmm/ppmm/WEB-INF/lib/jackson-dataformat-xml-2.4.2.jar] from WEB-INF/lib
java.util.zip.ZipException: error in opening zip file
使用1.5.9报错
javax/validation/constraints/Size找不到
四:如果是cxf-3.x,可以参考
https://github.com/apache/cxf/tree/3.0.x-fixes/distribution/src/main/release/samples/jax_rs。
http://cxf.apache.org/docs/swagger2feature.htm
估计使用2.x的配置方式也可以实现。具体没有测试过