Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用spring boot和IntelliJ调试jsp_Jsp_Intellij Idea_Spring Boot - Fatal编程技术网

使用spring boot和IntelliJ调试jsp

使用spring boot和IntelliJ调试jsp,jsp,intellij-idea,spring-boot,Jsp,Intellij Idea,Spring Boot,我正在使用spring boot、jsp和嵌入式tomcat开发一个web应用程序(war打包)。 应用程序运行良好,如果我使用springboot:run目标添加maven运行配置,我可以调试java文件而不会出现任何问题 但当我试图在我的一个jsp文件中添加断点时,IntelliJ显示了这个错误:“断点不属于任何类” 如果我将IntelliJ配置为使用外部tomcat服务器,那么jsp调试就可以完美地工作 有没有一种使用SpringBootMaven目标调试jsp的方法?这是spring引导

我正在使用spring boot、jsp和嵌入式tomcat开发一个web应用程序(war打包)。 应用程序运行良好,如果我使用springboot:run目标添加maven运行配置,我可以调试java文件而不会出现任何问题

但当我试图在我的一个jsp文件中添加断点时,IntelliJ显示了这个错误:“断点不属于任何类”

如果我将IntelliJ配置为使用外部tomcat服务器,那么jsp调试就可以完美地工作

有没有一种使用SpringBootMaven目标调试jsp的方法?这是spring引导还是IntelliJ中的maven运行配置的问题

我真的希望能够从我的开发环境中使用完整的spring引导功能


谢谢。

问题是spring boot为应用程序生成了另一个进程。您必须告诉boot您要调试,而不仅仅是在调试模式下为maven或gradle运行命令:-( 见:

更新: 对于我当前的项目,我只提供了一个类来初始化war文件中的springboot。(请参阅相应的howto,以便对部署在realwebcontainers中的war文件使用springboot)

因此,在前端东西的开发过程中,我使用springboot:run来快速重新加载资源等。为了调试java代码,我在调试模式下将这些东西部署到tomcat中。 对于一个版本,我只需要决定我想要哪种包装类型,因为我的应用程序可以作为jar或war文件运行

顺便说一句:如果你想只使用tomcat的东西(特殊的过滤器等等),你也可以使用一个嵌入式tomcat for springboot:run,这样你的环境就更相似了,你就不会发现幽灵bug;-)

更新2

根据需要,您只需运行引导应用程序的主方法即可进行调试。我想至少使用一次maven目标会有所帮助,这样所有的东西都会被编译/复制,等等。这对我来说很有用!:-)

更新3 根据SpringBoot团队的说法,他们改变了SpringBoot:run的工作方式,因此从1.2开始,您也应该能够对maven目标使用调试模式,尽管他们建议启动SpringBoot应用程序的方式始终是启动main方法

更新4
我可以确认,从Spring1.2开始,您可以在调试模式下直接运行maven目标,以便能够设置断点等。

谢谢,这很有帮助。我们一直在使用外部tomcat进行jspx调试和maven目标,或者直接运行main()方法进行java调试。当你不得不从一个或另一个切换时,这有点烦人,但我们可以接受。