我正在尝试设置从IntelliJ到Tomcat的远程调试,但是现在忘记IntelliJ了,因为我还没有开始。我最初尝试在服务器上进行设置,尝试设置tomcat以便它可以接受那些连接,但是当我添加jdwp标志/参数时,tomcat不会出现以下错误。
May 27 23:02:58 lab5 server: ERROR: transport error 202: bind failed: Permission denied
May 27 23:02:58 lab5 server: ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
May 27 23:02:58 lab5 server: JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [debugInit.c:750]
May 27 23:02:58 lab5 systemd: tomcat.service: main process exited, code=exited, status=2/INVALIDARGUMENT
May 27 23:02:58 lab5 systemd: Unit tomcat.service entered failed state.
May 27 23:02:58 lab5 systemd: tomcat.service failed.
我尝试了多种方法。
-Xdebug -Xrunjdwp:transport=dt_socket,address=myec2privateip:2345,server=y,suspend=n \
-agentlib:jdwp=transport=dt_socket,address=myec2privateip:2345,suspend=y,server=n \
-agentlib:jdwp=transport=dt_socket,address=myec2privateip:2345,suspend=y,server=y \
-agentlib:jdwp=transport=dt_socket,address=myec2privateip:2345,suspend=n,server=y \
-agentlib:jdwp=transport=dt_socket,address=myec2privateip:2345,suspend=n,server=n \
-Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000,suspend=n
-Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=myec2privateip:2000,suspend=n \
# JPDA_ADDRESS=myec2privateip:32702
# JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=32702"
-agentlib:jdwp=transport=dt_socket,server=y,address=8000 \
-agentlib:jdwp=transport=dt_socket,server=y,address=*:8000,suspend=n \
JAVA_TOOL_OPTIONS=-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n
agentlib:jdwp=transport=dt_socket,address=localhost:39621,suspend=n,server=y -Xdebug
-Xdebug -agentlib:jdwp=transport=dt_socket,address=2345,server=y,suspend=n -Djava.security.debug=all
对于我在上面尝试过的端口,它们上没有任何运行。这不是连接超时问题,也不是防火墙等问题。
[Tomcat在具有以下CentOS AMI“ CentOS Linux 7 x86_64 HVM EBS 1602”的AWS EC2实例上]
我安装的Tomcat来自yum,“ tomcat-7.0.92-1.el7.noarch”]
Java版本
如果删除我一直添加的参数,则Tomcat运行良好。
为什么会发生此错误,为什么我不能让Tomcat从其中任何一个开始?
我主要在/etc/sysconfig/tomcat
下的JAVA_OPTS
中进行了设置,但尝试过其他位置。
[对于其他在Centos7上执行此操作并遇到相同问题的人,在尝试了一百万次之后,这就是解决问题的方法……正如Mikematic在这里https://stackoverflow.com/a/56536805/13223528回答的
这与Tomcat配置无关。它是RHEL和CentOS上的SELinux框,阻止了与默认tomcat安装无关的文件夹的读写权限。要解决此问题,请安装SELinux管理工具,并为tomcat_t SELinux类型设置许可。
yum install selinux-policy-devel semanage permissive -a tomcat_t