Hybris + swagger集成swagger-ui.html UnknownResourceError

时间:2017-12-28 12:09:53

标签: swagger swagger-ui hybris

我正试图在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警告):

  

无法推断基本网址。这在使用动态servlet时很常见   注册或API在API网关后面。基本URL是   服务所有招摇资源的根源。对于例如如果   该API可在http://example.org/api/v2/api-docs处获得   基本网址为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。

谢谢!

1 个答案:

答案 0 :(得分: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/"/>

现在用户界面工作正常!

在此之前还有另外一次操纵,但是你可以在hybris专家(相当大的帖子)中找到它们。