为什么如果我从IDE(Eclipse)以Java应用程序的形式启动spring boot应用程序,它可以工作,但当我从CMD启动它时,它会给我带来白标签错误?

为什么如果我从IDE(Eclipse)以Java应用程序的形式启动spring boot应用程序,它可以工作,但当我从CMD启动它时,它会给我带来白标签错误?,java,spring-boot,command-line-interface,Java,Spring Boot,Command Line Interface,我有SpringBoot应用程序,如果我从IDE运行主类,一切正常,应用程序工作正常。 如果我使用java-JAR MyApp-1.0.JAR从命令行启动生成的JAR(通过mvn clean install),应用程序将启动,但当我转到localhost:8080时,它会给我白标错误页面: Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a f

我有SpringBoot应用程序,如果我从IDE运行主类,一切正常,应用程序工作正常。 如果我使用
java-JAR MyApp-1.0.JAR从命令行启动生成的JAR(通过
mvn clean install
),应用程序将启动,但当我转到
localhost:8080
时,它会给我白标错误页面:

Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.

Fri Aug 02 14:21:00 CEST 2019
There was an unexpected error (type=Not Found, status=404).
/WEB-INF/view/home.jsp
就像Maven生成了一个坏的JAR文件。
您能帮助我吗?

请在您的应用程序中定义前缀和后缀映射。如下面所示的属性,然后重试

spring.mvc.view.prefix: /WEB-INF/jsps
spring.mvc.view.suffix: .jsp in your application.properties
请检查以下文件中的映射

还可以使用jsp检查示例springboot项目,如下所示


这里已经回答了

我最近遇到了类似的问题。我找到了两种选择:

  • 使用maven命令运行,mvn-spring-boot:Run
  • 使用战争包装。war文件似乎没有任何问题。java-jarmyapp-1.0.war
  • 在上述两个选项中,您不需要遵循硬编码文件模式。
    希望这对别人有帮助。

    我知道这是一条老线索。我面临着同样的问题,在尝试了不同的组合后,我这样做是为了让它工作——奇怪

    如果你做的每件事都是正确的,但仍然不起作用,请确保在Application.java和控制器中都有@ComponentScan注释,并带有“basePackages”属性

    @ComponentScan(basePackages= {"... specify pkg name ...."})
    

    当您只需要
    mvn包时,无需运行
    mvn安装
    。您是如何创建JAR的?当然,看起来应该进入
    WEB-INF
    的资源似乎还没有打包。这里有两个问题:文件
    /WEB-INF/view/home.jsp
    可能没有打包到JAR中。发生此错误后,您将看到白标错误。要避免此错误,请在“src/main/resources/public/error/”下创建一个
    404.html
    。我不希望出现自定义错误。。。我试图理解为什么home.jsp没有捆绑在JAR文件中,当所说的问题没有得到认可的答案时,你说它已经在那里得到了回答。@MichaelPiefel这篇文章也说了同样的话thing@RiccardoPiezzojsp页面src/main/webapp/WEB-INF/view/home.jspstring.mvc.view.prefix=/WEB-INF/view/spring.mvc.view.suffix=.jsp