2014-04-07 53 views
1

我集成了一個Jax-Rs Jersey(1.16)Restful服務應用程序和Swagger。應用程序使用彈簧引導啓動。我看到下面的例外,當我運行應用程序時使用java -jar my-service-1.0-SNAPSHOT.jar並訪問http://localhost:8080/index.html來列出JaxRs資源。Swagger和Spring引導集成拋出ScannerException

 
14:01:53,135 INFO Scanning for root resource and provider classes in the packages: 
    com.company.automation.impl 
    com.wordnik.swagger.jersey.listing  [http-nio-8080-exec-1] PackagesResourceConfig 
14:01:53,435 ERROR StandardWrapper.Throwable                                [http-nio-8080-exec-1] [/] 
com.sun.jersey.core.spi.scanning.ScannerException: IO error when scanning jar jar:file:/home/suman/dev/projects/MyService/my-service/build/libs/my-service-1.0-SNAPSHOT.jar!/lib/swagger-jersey-jaxrs_2.10-1.3.4.jar!/com/wordnik/swagger/jersey/listing 
    at com.sun.jersey.core.spi.scanning.uri.JarZipSchemeScanner.scan(JarZipSchemeScanner.java:82) 
    at com.sun.jersey.core.spi.scanning.PackageNamesScanner.scan(PackageNamesScanner.java:225) 
    at com.sun.jersey.core.spi.scanning.PackageNamesScanner.scan(PackageNamesScanner.java:141) 
    at com.sun.jersey.api.core.ScanningResourceConfig.init(ScanningResourceConfig.java:80) 

我建立使用gradle build包括spring-boot-gradle-plugin脂肪罐子。我可以看到swagger-jersey-jaxrs_2.10-1.3.4.jar與胖罐捆綁在一起。 我錯過了什麼?
我可以通過其他方式運行應用程序,即gradle distZip並將zip內容解壓縮到目錄中,並運行由gradle創建的應用程序運行腳本文件。但我真的想用java -jar來運行它,以避免提取zip內容的步驟。

[編輯]這是一個提醒http://www.opencredo.com/2014/02/24/experiences-with-spring-boot/Caveats節嗎?

+0

我想我可以放心地說,這與該博客中的警告無關。是什麼讓你覺得不對?另一方面,沒有更多的數據,很難說它可能是什麼。這裏有一個使用澤西島2的示範例子(https://github.com/scratches/jersey-swagger-demo)。我不太確定澤西島1是否值得你付出努力,但是如果你願意的話,我們可以嘗試一下。可以分享你的代碼。 –

+1

https://java.net/jira/browse/JERSEY-2085 – abalogh

+0

@abalogh如果你能提供這個jira鏈接評論作爲答案,我會投票並接受。 –

回答

1

這是一個記錄的澤西錯誤,請參閱here