gpt4 book ai didi

spring-mvc -/swagger-resources/configuration/ui 404 错误

转载 作者:行者123 更新时间:2023-12-03 21:25:33 25 4
gpt4 key购买 nike

我在基于 java spring 的应用程序中运行 springfox v2.7.0。我们在 web.xml 中配置了 3 个调度 serverlet:

1)常见的springmvc servlet [Active]

<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>WEB-INF/config/common/springmvc-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>`

2) springmvc-v1 servlet [inactive]:通过在 web.xml 中注释掉它而不使用它被禁用。
<servlet>
<servlet-name>springmvc-v1</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextClass</param-name>
<param-value>
org.springframework.web.context.support.AnnotationConfigWebApplicationContext
</param-value>
</init-param>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>
com.test.mywebservices.v1.config.WebConfig
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

3)springmvc-v2 servlet [Active]: for this I am implimenting swagger.

<servlet>
<servlet-name>springmvc-v2</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextClass</param-name>
<param-value>
org.springframework.web.context.support.AnnotationConfigWebApplicationContext
</param-value>
</init-param>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>
com.test.mywebservices.v2.config.WebConfig
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>springmvc-v2</servlet-name>
<url-pattern>/v2/*</url-pattern>
</servlet-mapping>

它工作正常,我可以从这里获得 swagger-resources:
https://localhost:9002/mywebservices/v2/swagger-resources

我可以从这里查看 api:
https://localhost:9002/mywebservices/v2/v2/api-docs

可以从这里访问 Swagger-UI:
https://localhost:9002/mywebservices/swagger-ui.html

问题是当我加载 https://localhost:9002/mywebservices/swagger-ui.html 时它试图从这里访问 swagger-resources 的页面:
https://localhost:9002/mywebservices/swagger-resources

他们不可用。但它可以在 https://localhost:9002/mywebservices/v2/swagger-resources 获得

我该如何解决这个问题,以便 swagger-ui.html :
我认为 Swagger-ui.html 应该在以下位置可用: https://localhost:9002/mywebservices/v2/swagger-ui.html这样 springfox.js 将获得正确的 baseUrl。

https://localhost:9002/mywebservices/swagger-ui.html >>> 页面加载但弹出输入基本 URL

https://localhost:9002/mywebservices/swagger-resources/configuration/ui >>> 给出 404 因此弹出窗口出现

https://localhost:9002/mywebservices/webjars/springfox-swagger-ui/springfox.js >>> 能够访问。这工作正常。

请提出解决方案。
提前致谢。

最佳答案

我面临同样的问题。

解决方案是在您的应用程序的 MVC 配置上进行映射, Controller 手动管理存在于 swagger-common.jar 上的 swagger-resources 的映射。包裹值为 “springfox.documentation.swagger.web” .根据您的应用程序,配置应与下图类似:

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = { ApplicationPackages.REST_CONTROLLER_BASE_PACKAGE,
"springfox.documentation.swagger.web" })
public class MvcConfig extends WebMvcConfigurerAdapter {

}

关于spring-mvc -/swagger-resources/configuration/ui 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48055963/

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