我集成了一個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
節嗎?
我想我可以放心地說,這與該博客中的警告無關。是什麼讓你覺得不對?另一方面,沒有更多的數據,很難說它可能是什麼。這裏有一個使用澤西島2的示範例子(https://github.com/scratches/jersey-swagger-demo)。我不太確定澤西島1是否值得你付出努力,但是如果你願意的話,我們可以嘗試一下。可以分享你的代碼。 –
https://java.net/jira/browse/JERSEY-2085 – abalogh
@abalogh如果你能提供這個jira鏈接評論作爲答案,我會投票並接受。 –