我正在尝试在开始教程后在本地运行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
怎么了?你能帮助我吗?谢谢
谢谢你的报道。我重现了这一点,看起来随着Spring Boot 2.0的更新,我们没有适当地覆盖指定嵌入式Tomcat的servlet位置的更新属性。因此,当您转到/api/v1/swagger-ui.html时,应用程序会将其视为与给出404的URL完全相同的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
,我建议您也这样做。要清楚,请按照下列步骤操作:
server.servlet.contextPath
条目server.servletPath
中的api/src/main/resources/runtime-properties/common.properties
改为server.servlet.contextPath
感谢您试用Broadleaf和报告,对于粗略的早期开始感到抱歉!