当前位置: 首页 > 面试题库 >

使用Eclipse和Maven调试打包为WAR的Java Web应用程序的最佳方法?

莫飞翮
2023-03-14
问题内容

我以前没有构建过Java
Web应用程序,但是我已经完成了足够的测试,Maven正在构建我的WAR文件。它是一个多模块Maven项目,从属模块在WAR的WEB-INF /
lib目录中均具有其JAR文件。

所以一切似乎都很好,但是如何调试呢?我知道如何(从命令行)在我的机器上的Tomcat中运行WAR。我也认为我也知道如何从命令行设置和运行Maven
Jetty插件。但是,如何最好地调试……我喜欢使用Eclipse的所有断点和变量检查功能?

我应该创建某种启动配置,还是远程连接调试器?Eclipse中有什么可以像插件一样帮助您的吗?


问题答案:

如果使用tomcat / jetty插件运行WAR,请将调试选项传递给Maven:

export MAVEN_OPTS="-Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000" mvn tomcat:run

如果使用常规的Tomcat运行WAR,只需在启用JPDA(调试器)支持的情况下运行它即可:

$TOMCAT_HOME/bin/catalina.sh jpda start

Tomcat 6 JPDA的默认端口是8000。

现在,使用Eclipse(调试->远程Java应用程序)连接到端口8000,并享受您的精细调试会话。



 类似资料:
  • 问题内容: 我正在调试jnlp应用程序,过去可以通过Eclipse对其进行远程调试,但现在不再可用。 启动它的命令是: 问题是当我连接Eclipse调试器时,它会关闭并重新启动;因此,调试器将附加到第一个进程;当这种情况消失时,调试器也是如此。 调试器脚本实际上并不重要;因为如果suspend = n,则在调试器启动之前,jnlp进程会自行重新启动。 我尝试跟踪它,但是选项-XX:TraceSup

  • 问题内容: 我正在编写Android应用程序,此处的最佳方法通常可能与Java相同或不同。 我只是希望能够设置一个调试标志,该标志仅在设置为true时才执行代码的某些部分–等同于C ++设置预处理器#define DEBUG并使用#ifdef DEBUG。 在Java中是否有公认的或最佳的方法来完成此任务? 现在,我只是要在Application对象中设置一个变量,但是我不认为这是最好的方法。 问

  • 问题内容: 我正在用PHP启动一个新的Web应用程序,这次我想创建一些可以通过使用插件界面扩展的东西。 如何将“挂钩”写入其代码,以便插件可以附加到特定事件? 问题答案: 您可以使用观察者模式。实现此目的的简单功能方法: 输出: 笔记: 对于此示例源代码,必须在要扩展的实际源代码之前声明所有插件。我提供了一个示例,说明如何处理传递给插件的单个或多个值。最困难的部分是编写实际文档,该文档列出了传递给

  • 问题内容: 使用这样的函数: 我在输出中看到了print_trace的详细信息。 还有什么其他方法可以做到? 问题答案: 您在我的另一个答案(现已删除)中提到,您还希望查看行号。从应用程序内部调用gdb时,我不确定该怎么做。 但是,我将与您分享几种 不使用gdb 即可打印具有函数名称及其相应行号的简单stacktrace的方法。其中大多数来自Linux Journal的 一篇 非常好的 文章: 方

  • 我需要你的帮助,请理解调试一个maven应用程序使用Wildfly和Intellij的想法。 谢谢,