2

我正在尝试按照入门教程在本地运行 Heat Clinic 6.0.1:https ://www.broadleafcommerce.com/docs/core/current/getting-started/running-locally

我设法运行了管理员和站点,但没有运行 API 项目。应用程序启动时没有问题,但是当我转到http://localhost:8082/api/v1/swagger-ui.html时,我得到一个 404。在日志中我看到了这个异常:

javax.servlet.ServletException: Circular view path [error]: would dispatch back to the current handler URL [/error] again. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.)

还尝试使用用户 broadleafapi 和密码直接登录 API 会得到 404。

我的环境:Windows 10、jdk 8、maven 3.6

怎么了?你能帮助我吗?谢谢

4

1 回答 1

2

感谢您的报告。我复制了这个,看起来随着 Spring Boot 2.0 的更新,我们没有适当地覆盖更新的属性,该属性指定了嵌入式 Tomcat 的 servlet 位置。因此,当您访问 /api/v1/swagger-ui.html 时,应用程序会将其视为给出 404 的 URL。

设置该server.servlet.contextPath=/api/v1属性适当地剥离此路径作为 servlet 上下文的一部分并解决 404。

我进行了一些测试,并能够使用在日志中吐出的凭据信息“授权”应用程序(Swagger 页面右上角的按钮):

Basic auth configured with user broadleafapi and password: <<generated>>

然后我就可以访问 API 端点了。

您需要在项目中本地进行更改以使用修复程序位于https://github.com/BroadleafCommerce/DemoSite/commit/422d1cdc37f847afd8bec0be477ab784cbad2e9d#diff-991c59b6dbb0f619b8570d8f8779eaddR11。你会注意到我把原来的定义default.properties移到了common.properties,我建议你也这样做。要清楚,请按照下列步骤操作:

  1. 删除server.servlet.contextPath`api/src/main/resources/runtime-properties/default.properties 中的条目
  2. 更改为server.servletPath_api/src/main/resources/runtime-properties/common.propertiesserver.servlet.contextPath

感谢您试用 Broadleaf 和报告,对于粗略的早期开始感到抱歉!

于 2019-04-19T17:06:41.190 回答