在 ubuntu-server 中为 Tomcat7 设置 JPDA

2022-09-03 17:11:35

我正在尝试在 ubuntu 中为 Tomcat7 设置 JPDA。
我使用了安装Tomcat7的apt-get方法。
通过尝试编辑 /usr/share/tomcat7/startup.sh 文件,并尝试让 tomcat7 启动到调试模式,并允许通过 eclipse 进行远程调试。

 JPDA_TRANSPORT="dt_socket"
 JPDA_ADDRESS="8000"
 exec "$PRGDIR"/"$EXECUTABLE" jpda start "$@"

编辑 startup.sh 文件后,我使用以下命令重新启动tomcat7:

 sudo service tomcat7 restart

然后尝试使用IP地址和端口8000连接到eclipse中的tomcat jpda。我收到来自 Eclipse 的“连接被拒绝”错误。

我试图使用 startup.sh 脚本而不是服务可执行方法手动启动tomcat7,因为我认为可能没有调用 startup.sh。

sudo ./startup.sh

此操作失败,输出如下:

 Using CATALINA_BASE:   /usr/share/tomcat7
 Using CATALINA_HOME:   /usr/share/tomcat7
 Using CATALINA_TMPDIR: /usr/share/tomcat7/temp
 Using JRE_HOME:        /usr
 Using CLASSPATH:       /usr/share/tomcat7/bin/bootstrap.jar:/usr/share/tomcat7/bin/tomcat-juli.jar
 touch: cannot touch `/usr/share/tomcat7/logs/catalina.out': No such file or directory
 ./catalina.sh: 389: ./catalina.sh: cannot create /usr/share/tomcat7/logs/catalina.out: Directory nonexistent

我还尝试在/etc/init.d/tomcat7上更改启动脚本,因为我正在使用服务来启动/重新启动tomcat7,但无济于事...

我做错了什么?


答案 1

在 Ubuntu 12.04+ 中有一个这样的部分:/etc/default/tomcat7

# To enable remote debugging uncomment the following line.
# You will then be able to use a java debugger on port 8000.
#JAVA_OPTS="${JAVA_OPTS} -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"

因此,只需取消注释并运行.sudo service tomcat7 restart


答案 2

在 Tomcat 中所需的设置:

1)在*/tomcat/bin/下创建 setenv.sh 文件。该位置将与 catalina.sh 文件相同

2)将以下内容放入其中。

导出CATALINA_OPTS=“-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n” 现在启动Tomcat服务器。启动后,请继续执行以下步骤。

Eclipse 中所需的设置:

3)在Eclipse中转到Windows-->Preference--> General-->Network Connection-->Active Provider应该是Direct的。改后直接重启日食。

4)在 eclipse 中,右键单击项目并调试为 ->debug 配置 ->远程 java 应用程序 ->创建新配置。

填写以下字段

姓名:如您所愿

项目:选择需要调试的项目。

连接类型:标准插座连接

主机:本地主机端口:8000(应与第2点中提到的相同)

然后单击调试。

调试将从端口 8000 开始。现在,您可以通过保留断点进行验证。