Hybris + swagger集成swagger-ui.html UnknownResourceError

问题描述 投票:0回答:1

我正试图在MYcommercewebservices中整合招摇。我阅读了帖子并完成了列出的所有步骤,但仍然有此错误。

https://localhost:9002/mycommercewebservices/v2/v2/api-docs工作正常。 https://localhost:9002/mycommercewebservices/v2/swagger-ui.html - 返回UnknownResourceError。

此外 - 如果我导航到https://localhost:9002/mycommercewebservices/swagger-ui.html(没有'v2')它会向我显示此消息(javascript警报):

无法推断基本URL。这在使用动态servlet注册或API位于API网关后很常见。基本URL是提供所有swagger资源的根。对于例如如果API在http://example.org/api/v2/api-docs上可用,则基本URL为http://example.org/api/。请手动输入位置:

我找到了这个控制器,可能是问题的一部分,因为当我导航到https://localhost:9002/mycommercewebservices/v2/swagger-ui.html时它抛出异常

@Controller
public class DefaultController
{
    @RequestMapping
    public void defaultRequest(final HttpServletRequest request)
    {
        throw new UnknownResourceException("There is no resource for path " + YSanitizer.sanitize(request.getRequestURI()));
    }
}

现在我禁用了控制器,但仍然有相同的异常,但现在它是json格式而不是.xml。

谢谢!

swagger swagger-ui hybris
1个回答
0
投票

主要问题是DefaultController(在MYcommercewebservices中)

@Controller
public class DefaultController
{
    @RequestMapping
    public void defaultRequest(final HttpServletRequest request)
    {
        throw new UnknownResourceException("There is no resource for path " + YSanitizer.sanitize(request.getRequestURI()));
    }
}

它正在抓住我的请求并抛出异常。 当我禁用此控制器时,我继续收到异常,但现在它是json格式(在xml之前)。

我把它添加到springmvc-v2-servlet.xml

<mvc:default-servlet-handler/>
<mvc:resources mapping="swagger-ui.html" location="classpath:/META-INF/resources/"/>
<mvc:resources mapping="/webjars/**" location="classpath:/META-INF/resources/webjars/"/>

现在UI工作正常!

在所有这一切之前还有另一个操纵,但你可以在hybris专家(相当大的帖子)中找到它们。

© www.soinside.com 2019 - 2024. All rights reserved.