gpt4 book ai didi

java - 为什么 Swagger + RESTEasy 不能使用 @ApplicationPath ("")

转载 作者:行者123 更新时间:2023-11-30 08:58:52 25 4
gpt4 key购买 nike

环境 = JBoss 7.2.0.Final + RESTEasy 2.3.5.Final + Swagger 1.3.10

尝试设置一个没有 web.xml 的 WAR 并使用 Swagger。如果 ApplicationPath 中有任何值,它就会工作

@javax.ws.rs.ApplicationPath("test")

@WebServlet(name = "RestEasy-1", loadOnStartup = 1)

@Path("/message")
@Api(value="/message",description="hello api")

适用于 URL

http://localhost:8080/RestEasy-1/test/message/xyz (THE SERVICE)
http://localhost:8080/RestEasy-1/test/api-docs (SHOWS SWAGGER JSON)
http://localhost:8080/RestEasy-1/ (RUNS SWAGGER UI)

但是如果我改为:

@javax.ws.rs.ApplicationPath("") (also tried /* or * or /)

服务和 api-docs 工作,但 Swagger 似乎不可用。

我猜这是与 servlet 根上的监听器发生冲突,但我有一个预先存在的约束,即服务在根 + 路径上运行,所以我需要一个空白的 ApplicationPath。

是否可以将 Swagger 设置为手动运行不同的路径?

最佳答案

问题是您试图从同一资源根同时提供应用程序和静态上下文,这背后存在一些技术问题。

我相信这个 SO 问题 - JAX-RS Application on the root context - how can it be done? - 指的是同一件事,并包含对问题的广泛解决方案。

关于java - 为什么 Swagger + RESTEasy 不能使用 @ApplicationPath (""),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27464010/

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