无论是否有Maven,Spring Boot都可以运行?如果没有,JSP就无法解决

时间:2017-03-16 08:18:50

标签: java spring maven jsp spring-boot

在创建Spring Boot应用程序时,在开发环境中,IntelliJ Idea创建一个没有Maven的运行配置,它直接调用静态Main方法,类型为“Spring Boot”。

当我在没有Maven的情况下运行时,我的JSP模板文件没有被解析,我得到了下面的错误页面。

当我使用Maven运行时,它们已经解决但我无法调试。我看到一些POM.xml配置能够附加调试器但是它会一直调试,即使我使用Run而不是Debug来激活应用程序。

我应该在没有Maven的情况下运行Boot应用程序吗? 如果我不应该,这是调试应该如何? 我觉得这里有些不对劲......

Whitelabel Error Page

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

Thu Mar 16 08:53:54 GMT 2017
There was an unexpected error (type=Not Found, status=404).
No message available

我相信我看到这个错误页面,因为它试图找到我的index.jsp,找不到它,然后尝试error.jsp并且也找不到它。

3 个答案:

答案 0 :(得分:0)

您可以尝试使用URL之类的不同URL,也可以使用项目(工件)名称。也许IDEA和maven如何部署你的战争有些不对劲。 此外,可以从maven运行应用程序,然后将IDEA的远程运行配置连接到它。为此,您需要使用mvnDebug而不是mvn - 它与mvn($ MAVEN_HOME / bin /)位于同一文件夹中。然后,您需要使用端口8000将远程配置添加到IDEA - 它是默认端口。

答案 1 :(得分:0)

在从IntelliJ运行应用程序之前先尝试重新导入Maven项目,或者在更改pom.xml文件(File | Settings | Build, Execution, Deployment | Build Tools | Maven | Importing | Import Maven projects automatically)中的内容时自动执行此操作。

我在开发环境中使用IntelliJ执行。更重要的是,如果你想拥有像 hot-reloading 这样的功能,可以考虑使用Spring Boot附带的devtools模块,它可以轻松地与IntelliJ调试执行集成(只需添加{{1}你的依赖关系)。

答案 2 :(得分:0)

好的,在做了更多的研究之后,通过Main方法直接运行Spring Boot应用程序而不是开发环境中的Maven是正确的。

如果没有Maven,则没有呈现JSP的问题是Tomcat Jasper依赖项的范围是<scope>provided</scope>,在将其更改为“已编译”或“运行时”后,它开始在没有maven的情况下工作。有趣的是,当它被“提供”时,JSP渲染仅适用于Maven。