在war文件中有一个运行在tomcat中的Web应用程序,作为其中的一部分,我使用jax-rs实现jax-rs rest apis并使用jersey绑定 . 这些休息api有一些招摇的注释,但我似乎无法让swagger-ui正常运行 .
Strucure
warFile
+docs
----swagger is here
+web-inf
++web.xml
++lib
----all my jax-rs jars here
+meta-inf
----nothing
我定义的球衣配置
public class JerseyConfig extends ResourceConfig {
public JerseyConfig() throws Exception {
packages("com.myapp.somefiles");
BeanConfig config = new BeanConfig();
config.setBasePath("rest");
config.setResourcePackage("com.myapp.somefiles");
config.setScan(true);
}
在web.xml
<servlet>
<servlet-name>com.myapp.somefile.JerseyConfig</servlet-name>
</servlet>
<servlet-mapping>
<servlet-name>com.myapp.somefile.JerseyConfig</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
所以,当我在war文件中有swagger-ui html文件时,我可以访问它们;本地主机:8181 / warFile /文档 . 但是我希望将它加载到与我的rest api相同的URL上,这可能是localhost:8181 / warFile / rest / docs
我可以在localhost访问swagger.json文件:8181 / warFile / rest / swagger.json
我是否需要在servlet或beanconfig的上下文中使用类加载器加载swagger? swagger-ui也可以与/ lib目录中的jar依赖项之一打包在一起 . 我能以某种方式参考吗?
1 回答
使用Swagger UI的最简单方法是将其打包到WAR文件中:从GitHub repository下载Swagger UI文件,并将
dist
目录的内容复制到项目的Web内容文件夹中 . 然后只需更新index.html
即可指向您的swagger.json
.