调试tomcat中部署的java应用程序
我在tomcat中部署了一个应用程序。后来,我在Eclipse中将代码配置为一个项目。我想通过eclipse连接到tomcat并调试应用程序。调试tomcat中部署的java应用程序,java,eclipse,debugging,tomcat,Java,Eclipse,Debugging,Tomcat,我在tomcat中部署了一个应用程序。后来,我在Eclipse中将代码配置为一个项目。我想通过eclipse连接到tomcat并调试应用程序。 试图设置远程调试连接时出现错误。是否有任何条目需要添加到tomcat中?是的,您需要将tomcat配置为接受远程调试连接。有一个关于如何使用各种IDE的常见问题解答 首先,您需要在调试模式下运行Tomcat。最简单的方法是修改启动文件(.bat或.sh,具体取决于您是否是Windows)。找到包含start命令的文件附近或末尾的行,并将其更改为jpda
试图设置远程调试连接时出现错误。是否有任何条目需要添加到tomcat中?是的,您需要将tomcat配置为接受远程调试连接。有一个关于如何使用各种IDE的常见问题解答
首先,您需要在调试模式下运行Tomcat。最简单的方法是修改启动文件(.bat或.sh,具体取决于您是否是Windows)。找到包含
start
命令的文件附近或末尾的行,并将其更改为jpda start
。这将导致Tomcat在调试模式下启动,监听端口8000
接下来,要通过Eclipse连接到此进程,请选择
Run
菜单并选择Debug Configurations…
。在左侧窗格中,选择远程Java应用程序
,然后单击列表上方的新启动配置
按钮。需要注意的重要设置是主机
和端口
字段。主机值必须与Tomcat进程的主机名匹配,端口应为8000
。您可能还需要在Source
选项卡上添加条目,以确保所有源代码都可以单步执行 只需更改startup.bat中的行即可(如果您使用的是Windows)
发件人:
致:
创建一个新的tomcat服务器
创建新的动态web项目
将war导出到tomcat服务器
Tomcat调试配置(重要),首先双击Tomcat服务器,然后选择“使用Tomcat安装(控制Tomcat安装)”
添加断点
在调试模式下运行tomcat
web浏览器中的测试战争
编辑源路径
在Tomcat中调试源代码
war文件可用
右键单击要调试的项目,进入“调试方式”菜单,然后在列表中单击“调试配置”
然后从左侧菜单列表双击远程Java应用程序。浏览要添加的项目,然后单击应用
- 同时将侦听端口更改为7999,然后从本地主机启动web应用程序后,单击同一窗口上的调试按钮。然后在那之后,任何断点都会被击中李>
使用eclipse设置tomcat调试器的步骤
安装以下内容:
java 1.8+
eclipse EE版本
下载Tomcat8+
打开eclipse并转到服务器选项卡并添加新服务器(窗口->显示视图->其他->搜索服务器)
将您的项目标记为动态web项目(右键单击项目->项目方面->选择动态web模块)
导出战争(文件->导出->搜索战争->选择模块并选择路径)
运行方式->在服务器上运行
在调试或运行模式下启动tomcat服务器
检查localhost:8080
调试为我工作。我使用的是在centos 7上配置的tomcat 8。更改2个设置后为我打开了调试端口
打开tomcat/conf/bin/startup.sh并添加到下面的行中
在同一文件startup.sh中,在start命令之前添加了jpda
重新启动tomcat。
在eclipse中,运行>调试配置>远程java应用程序>添加运行tomcat的主机ip和端口(8000)。
在我的情况下,我也需要通过防火墙打开8000
firewall-cmd --zone=public --permanent --add-port=8000/tcp
firewall-cmd --reload
谢谢你的链接。我在启动日添加了设置和tomcat“监听地址为8000的传输dt_套接字”。在此之后,我尝试从eclipse进行远程调试,但再次失败,出现了相同的错误“无法连接到远程VM。连接被拒绝”。Laz,我完成了所有这一切。但我仍然以“无法连接到远程VM。连接被拒绝”的错误结束。知道为什么会出现这个错误吗?听起来Tomcat好像出于任何原因都没有在侦听。你最后修改了哪个文件?终于开始工作了。我显式地添加了JVM选项,并提供了一个默认8000以外的端口。能够使调试连接以这种方式工作。谢谢你的帮助,拉兹@user811433您是如何添加JVM选项的?你可以发布你的startup.bat,其中添加了JVM选项吗?太棒了,它成功了。tomcat启动文件中所需更改的详细信息:这是一个非常有用的答案,但不是针对这个问题。我学到了一些东西,但不是这个问题的答案
call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS%
export JPDA_ADDRESS=8000
export JPDA_TRANSPORT=dt_socket
exec "$PRGDIR"/"$EXECUTABLE" jpda start "$@"
firewall-cmd --zone=public --permanent --add-port=8000/tcp
firewall-cmd --reload