使用spring-boot和IntelliJ调试jsp



我正在使用spring boot、jsp和嵌入式tomcat开发一个web应用程序(war打包)。该应用程序运行良好,如果我添加带有spring-boot:run目标的maven运行配置,我可以毫无问题地调试java文件。

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

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

有没有一种方法可以使用spring-boot-maven目标调试jsp?这是IntelliJ中spring-boot或maven运行配置的问题吗?

我真的很希望能够使用我的开发环境中的全春季启动功能。

谢谢。

问题是春季启动为应用程序生成了另一个进程。你必须告诉引导你想要调试,而不仅仅是在调试模式下运行maven或gradle的命令-(参见:

  • http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#howto-远程调试渐变运行
  • http://docs.spring.io/spring-boot/docs/1.1.4.BUILD-SNAPSHOT/maven-plugin/examples/run-debug.html

更新:对于我当前的项目,我只是在war文件中提供了一个初始化spring-boot的类。(请参阅相应的如何对部署在真实网络容器中的战争文件使用spring boot)

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

BTW:如果你想使用tomcat专用的东西(特殊的过滤器等等),你可以在springboot中使用嵌入式tomcat:也可以运行,这样你的环境就更相似了,你就不会猎杀幽灵虫;-)

更新2

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

更新3根据spring-boot团队的说法,他们改变了spring-boot:run的工作方式,因此从1.2开始,你也应该能够使用maven目标的调试模式,尽管他们推荐的启动spring-boot应用程序的方法总是启动主方法。

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

最新更新