在尝试入门教程之后,我正在尝试在本地运行Heat Clinic 6.0.1:https://www.broadleafcommerce.com/docs/core/current/getting-started/running-locally
我设法运行admin和site,但没有运行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
怎么了?你能帮助我吗?谢谢
答案 0 :(得分:2)
感谢您的举报。我转载了此内容,并且看起来像Spring Boot 2.0的更新一样,我们没有适当地覆盖为嵌入式Tomcat指定servlet位置的update属性。因此,当您转到/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
上,建议您也这样做。要清楚,请按照以下步骤操作:
server.servlet.contextPath
条目
server.servletPath
中的api/src/main/resources/runtime-properties/common.properties
更改为server.servlet.contextPath
感谢您试用Broadleaf和报告,对不起,我们很早就开始了!