/swagger-resources/configuration/ui 404错误
/swagger-resources/configuration/ui 404 error
我在基于 java spring 的应用程序中 springfox v2.7.0 运行。我们在 web.xml:
中配置了 3 个调度 serverlet
1)通用 springmvc servlet [活跃]
<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 >>> 页面已加载但弹出窗口以进入 Base URL
https://localhost:9002/mywebservices/swagger-resources/configuration/ui >>> 给出 404 因此出现弹出窗口
https://localhost:9002/mywebservices/webjars/springfox-swagger-ui/springfox.js >>> 能够 access.This 工作正常。
请提出解决方案。
提前致谢。
我遇到了同样的问题。
解决方案是映射到您应用的 MVC 配置,手动管理 swagger-common.jar 上存在的 swagger-资源映射的控制器。套餐价值"springfox.documentation.swagger.web"。根据您的应用程序,配置应该类似于下面显示的配置:
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = { ApplicationPackages.REST_CONTROLLER_BASE_PACKAGE,
"springfox.documentation.swagger.web" })
public class MvcConfig extends WebMvcConfigurerAdapter {
}
我在基于 java spring 的应用程序中 springfox v2.7.0 运行。我们在 web.xml:
中配置了 3 个调度 serverlet1)通用 springmvc servlet [活跃]
<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 >>> 页面已加载但弹出窗口以进入 Base URL
https://localhost:9002/mywebservices/swagger-resources/configuration/ui >>> 给出 404 因此出现弹出窗口
https://localhost:9002/mywebservices/webjars/springfox-swagger-ui/springfox.js >>> 能够 access.This 工作正常。
请提出解决方案。 提前致谢。
我遇到了同样的问题。
解决方案是映射到您应用的 MVC 配置,手动管理 swagger-common.jar 上存在的 swagger-资源映射的控制器。套餐价值"springfox.documentation.swagger.web"。根据您的应用程序,配置应该类似于下面显示的配置:
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = { ApplicationPackages.REST_CONTROLLER_BASE_PACKAGE,
"springfox.documentation.swagger.web" })
public class MvcConfig extends WebMvcConfigurerAdapter {
}