【发布时间】:2015-08-06 18:09:20
【问题描述】:
我在加载 Swagger UI/启用 UI 端点时遇到问题。 Maven 项目,Jersey 版本 - 2.12,Swagger 版本 - 1.5.1-M2
我有一个以编程方式配置的球衣网络应用程序。 在我的 ResourceConfig(扩展)中,我为 Swagger 设置了以下内容:
beanConfig = new BeanConfig();
beanConfig.setVersion("1.0.0");
beanConfig.setHost("http:localhost:8080");
beanConfig.setBasePath("/app/v1");
beanConfig.setResourcePackage("com.app.features");
beanConfig.setScan(true);
注册(beanConfig);
注册(新的 ApiListingResourceJSON());
注册(新的 SwaggerSerializers());
我还有一个引导类,我通过 web.xml 加载:
public class Bootstrap extends HttpServlet {
@Override
public void init(ServletConfig config) throws ServletException {
Info info = new Info()
.title("Swagger Sample App")
.description("Desc")
.termsOfService("http://helloreverb.com/terms/")
.contact(new Contact()
.email("apiteam@swagger.io"))
.license(new License()
.name("Apache 2.0")
.url("http://www.apache.org/licenses/LICENSE-2.0.html"));
ServletContext context = config.getServletContext();
Swagger swagger = new Swagger().info(info);
context.setAttribute("swagger", swagger);
}
}
说web.xml:
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>Bootstrap</servlet-name>
<servlet-class>com.app.Bootstrap</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
我已将 Swagger UI dist 的内容复制到我的网络应用程序文件夹中。
当我在http://localhost:8080/app/v1/swagger.json 上点击 api json 端点时,我确实得到了 json 代码,例如:
{"swagger":"2.0","info":{"version":"1.0.0"},"host":"http:localhost:8080","basePath":"/app/v1"}
但我似乎没有在我期望的路径上看到 Swagger UI(http:localhost:8080/app/v1 或 http:localhost:8080/app/v1/app/v1/index.html)。
很遗憾,我对 Jersey 的感觉不如对 Spring 的感觉舒服,因此欢迎任何帮助。
谢谢
【问题讨论】:
标签: java rest jersey swagger swagger-ui