gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 10:38:02 25 4
gpt4 key购买 nike

在 war 文件中有一个在 tomcat 中运行的 Web 应用程序,作为它的一部分,我有使用 jax-rs 实现的 jax-rs rest apis 并由 jersey 绑定(bind)。这些 rest api 有一些 swagger 注释,但是我似乎无法让 swagger-ui 正常运行。

结构

warFile
+docs
----swagger is here
+web-inf
++web.xml
++lib
----all my jax-rs jars here
+meta-inf
----nothing

我定义的 Jersey 配置

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:8181/warFile/rest/swagger.json 访问 swagger.json 文件

我是否需要在我的 servlet 或 beanconfig 上下文中使用类加载器加载 swagger? swagger-ui 也可以与/lib 目录中的 jar 依赖项之一打包在一起。我可以以某种方式引用它吗?

最佳答案

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

关于java - 在 jersey/jax-rs 加载 swagger-ui 目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39886232/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com