要启用swagger-ui,你可以直接使用文档中提供的现成代码,不需要编译或重新构建。只需克隆该存储库并使用dist文件夹中的预构建文件即可。如果你喜欢现有的swagger-ui,则无需进行其他操作。
因此,你只需要将“dist”文件夹的内容放置在Web服务器中,然后在UI中输入Web服务的swagger端点,例如:http://localhost:8080/Webservice/api-doc.json(这是你在Web.xml中定义的相同地址端点)。
我怀疑你可能已经配置了一些错误的细节,因为Swagger有几个需要配置的地方。下面我将向你介绍一些我自己在Swagger中设置的细节。
以下是我的web.xml中Swagger配置的代码片段:
<servlet>
<servlet-name>web service</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.mywebservice;com.wordnik.swagger.jaxrs.listing;com.fasterxml.jackson.jaxrs</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.config.property.classnames</param-name>
<param-value>com.mywebservice;com.wordnik.swagger.jaxrs.listing;com.fasterxml.jackson.jaxrs</param-value>
</init-param>
<init-param>
<param-name>swagger.api.basepath</param-name>
<param-value>http://localhost:8080/Webservice</param-value>
</init-param>
<init-param>
<param-name>api.version</param-name>
<param-value>0.0.2</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>Bootstrap</servlet-name>
<servlet-class>com.mywebservice.utils.swagger.Bootstrap</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<filter>
<filter-name>ApiOriginFilter</filter-name>
<filter-class>com.mywebservice.utils.swagger.ApiOriginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>ApiOriginFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
以下是
com.mywebservice.utils.swagger
包的列表,其中有几个资源,如Swagger文档中所示(现在似乎与我设置时不同,因此这里是完整的文档列表):
![enter image description here](https://istack.dev59.com/cVdDm.webp)
您可以在Swagger的示例项目中找到这些文件(或示例):
https://github.com/wordnik/swagger-core/tree/master/samples/java-jaxrs,您应该尝试使用它作为设置Swagger的“模板”。我遇到麻烦的是ApiListingResource文件。
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import com.wordnik.swagger.annotations.Api;
import com.wordnik.swagger.jaxrs.JavaApiListing;
@Path("/resources.json")
@Api("/resources")
@Produces({ "application/json"})
public class ApiListingResource extends JavaApiListing{
}
HTH.