【问题标题】:What's app-root in this project?这个项目中的 app-root 是什么?
【发布时间】:2017-04-19 19:38:44
【问题描述】:

我将继续使用 this article 构建一个 Restful 应用程序,然后使用 this link 向其中添加 swagger2 来启动一个 Spring boot Restful 项目。在second link 中,它说您可以通过访问“http://localhost:8080/your-app-root/swagger-ui.html”在浏览器中测试 swagger-ui。我的项目中的 app-root 是什么?是项目名称吗?我的项目名称是 RestSpringBoot。我试过 "http://localhost:8080/RestSpringBoot/swagger-ui.html" 。但我收到以下错误:

白标错误页面

此应用程序没有显式映射 /error,因此您将其视为后备。

更新:我使用 intellij IDE,并在配置中进行了配置,以使用 sring boot 运行我的项目。当我运行项目并检查 url http://localhost:8080/ 它给出了同样的错误。但是这个:http://localhost:8080/persons/all 将返回一个用户的 json。是不是spring boot本身就内嵌了tomcat,因此不需要启动tomcat或者在tomcat上部署项目?如果是真的,为什么通过 Spring Boot 运行项目访问 http://localhost:8080 会给出“Whitelabel Error Page”错误。

更新 2:当我的 spring boot 项目运行时,我打开这个 url:http://localhost:8080/swagger-ui.html 但我看不到控制器列表,而是看到这个页面:

我无法理解的是,当我的项目没有运行时,我再次在http://localhost:8080/swagger-ui.html 中看到与上图相同的内容。

【问题讨论】:

    标签: java tomcat spring-boot swagger swagger-ui


    【解决方案1】:

    您指定的项目链接中没有 app-root。如您所见,使用 http://localhost:8080/greeting 访问 /greeting 端点。所以,只用它来达到你的招摇用户界面。 http://localhost:8080/swagger-ui.html.
    关于 spring boot 和 whitelabel 错误页面,您看到此页面的事实意味着 tomcat 正在运行,它告诉您它没有任何您正在尝试的 url 模式的映射(这只是 '/')。您应该添加一个控制器并公开您想要使用的路径(使用RequestMapping),就像在第一个链接 GreetingController 类中所做的那样。

    【讨论】:

    • 您的解释很有帮助,但通过单击 localhost:8080/swagger-ui.html 我看不到控制器列表。 @pvpkiran
    • 另一个问题是如果tomcat正在运行,为什么我无法通过访问localhost:8080看到tomcat主页?您可以查看更新 2
    • 它就是这样设计的,因为这是一个嵌入式 tomcat。您可以更改此行为,但没有任何意义。关于前面的问题,有几件事 1. 如果即使您的应用程序没有运行,您也看到了 swagger 页面,这意味着该页面已缓存在浏览器中。只需清除缓存或在隐身窗口中尝试。
    • 2.关于不可见的端点。您是否对应用程序中创建的端点有任何安全性,并且您是否完成了该教程中提到的有关将资源处理程序添加到注册表的这一点?如果不这样做并添加一行到该 registry.addResourceHandler("/**").addResourceLocations("classpath:/META-INF/resources/"); 3.到达这个urllocalhost:8080/v2/api-docs时看到json了吗
    • 首先我回答你的第三个问题,是的,我看到了 josn。现在我可以通过在包含@SpringBootApplication 的主类中复制配置 bean 来查看 swagger-ui.html 页面中的控制器,但我不明白为什么当 swagger 配置位于单独的类中时它不正确,如链接。
    【解决方案2】:

    试试看:http://localhost:8080/RestSpringBoot/api/swagger-ui.html

    我在这里假设您的项目名称是:RestSpringBoot

    【讨论】:

    • 它再次出现此错误:Whitelabel 错误页面此应用程序没有显式映射 /error,因此您将其视为后备。 2017 年 4 月 19 日星期三 10:25:30 IRDT 出现意外错误(类型=未找到,状态=404)。没有可用的消息@Pratik Shah
    猜你喜欢
    • 2017-05-09
    • 2021-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-19
    • 2012-12-16
    相关资源
    最近更新 更多