首页 文章

在jersey / jax-rs中加载swagger-ui目录

提问于
浏览
2

在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 回答

  • 1

    使用Swagger UI的最简单方法是将其打包到WAR文件中:从GitHub repository下载Swagger UI文件,并将 dist 目录的内容复制到项目的Web内容文件夹中 . 然后只需更新 index.html 即可指向您的 swagger.json .

相关问题