Swagger-core: Spring Boot + Jersery2+Swagger2同時に動作することはできません

作成日 2016年06月02日  ·  5コメント  ·  ソース: swagger-api/swagger-core

Spring Boot + Jersery2+Swagger2同時に動作することはできません

SpringBootアプリケーションの実行

BootStartInitialization.class

public static void main(String [] args){
SpringApplication.run(BootStartInitialization.class、args);
}

<strong i="11">@Bean</strong>
public ServletRegistrationBean jerseyServlet() {
    ServletRegistrationBean registration = new ServletRegistrationBean(new ServletContainer(), "/api/*");
    registration.addInitParameter(ServletProperties.JAXRS_APPLICATION_CLASS, JerseyConfig.class.getName());
    return registration;
}

ジャージー構成

パブリッククラスJerseyConfigはResourceConfigを拡張します{

public JerseyConfig() {              

    register(io.swagger.jaxrs.listing.ApiListingResource.class);
    register(io.swagger.jaxrs.listing.SwaggerSerializers.class);          
    register(CrossDomainFilter.class);
    register(JacksonFeature.class);
    register(UserController.class);//this my api
}

}

Swagger2構成

@構成
@ EnableSwagger2
パブリッククラスSwagger2{

<strong i="23">@Bean</strong>
public Docket createRestApi(ServletConfig config) {     
    return new Docket(DocumentationType.SWAGGER_2)
            //.pathProvider(pathProvider)
            .apiInfo(apiInfo())
            .select()
            .apis(RequestHandlerSelectors.basePackage("com.controller"))
            .paths(PathSelectors.any())
            .build();
}

private ApiInfo apiInfo() {
    return new ApiInfoBuilder()
            .title("Spring Boot中使用Swagger2构建RESTful APIs")
            .description("施工平台后台API")
            .termsOfServiceUrl("http://www.xxxx.com/")
            .contact("Jonathan")
            .version("1.0")
            .build();
}

APIコントローラー(リソース)

@成分
@コントローラ
@RequestMapping(value = "/ accounts")
@Path( "/ accounts")
@Api(value = "アカウントマネージャー")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
パブリッククラスUserController{

/**
 * <strong i="35">@Fields</strong> log slf4j logger
 */
private static Logger logger = LoggerFactory.getLogger(UserController.class);

<strong i="36">@POST</strong>
@ApiOperation(value = "Add a new user to the store")
public void create(@ApiParam(value = "Account object that needs to be added to the store", required = true) final String userName) {

}

@Path("{userId}")
<strong i="37">@GET</strong>
@ApiOperation(value = "Get user's Account by userId")
//@RequestMapping(value={"userId"}, method=RequestMethod.GET)
public String get(@ApiParam(value = "get user's account from db.", required = true) @PathParam("userId") final Integer userId) {
    if (userId != null) {
        return userId.toString();
    } else {
        return "userId is be can't null";
    }
}

}

http:// localhost :8080 / swagger-ui.htmlを開き、APIドキュメントを表示しません。 見つかったサブAPI。
http:// localhost :8080 / accounts /{userId}apiドキュメントを表示できません。

同時に動作することはできません

Spring Boot + Jersey + Swagger実行されませんか?

これは誰ですか? なぜ ? この質問は解決されていません。

最も参考になるコメント

しかし、それはSpring Boot + Swagger2.0であり、Jerseyはなく、Jerseyのタグではありません。

Spring Boot + Jersey+swaggerが欲しいです。

全てのコメント5件

SpringBoot+Swaggerに関するこのチュートリアルをご覧ください。

http://heidloff.net/article/usage-of-swagger-2-0-in-spring-boot-applications-to-document-apis/

しかし、それはSpring Boot + Swagger2.0であり、Jerseyはなく、Jerseyのタグではありません。

Spring Boot + Jersey+swaggerが欲しいです。

ジャージー構成に登録する前に、Springコンテキストからリソースを取得することをお勧めします。 アスペクトを実行したい場合は、春に注意する必要があります。

WebApplicationContext springFactory = WebApplicationContextUtils.getWebApplicationContext(servletContext);
register(springFactory.getBean(UserController.class));

@youkuan私も同じ問題を抱えています。 解決策を見つけましたか?

このページは役に立ちましたか?
0 / 5 - 0 評価