在Tomcat 7和CentOS 7中进行远程调试。

问题描述 投票:1回答:1

我试图设置从IntelliJ到Tomcat的远程调试,但暂时忘了IntelliJ,因为我还没有开始使用它。我最初想在服务器上设置它,我试图设置Tomcat,使它能够接受这些连接,但是当我添加jdwp flagsarguments时,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在AWS EC2实例上,其CentOS AMI如下 "CentOS Linux 7 x86_64 HVM EBS 1602"

我安装的Tomcat是来自yum,"tomcat-7.0.92-1.el7.noarch"

Java版本

  • OpenJDK版本为 "1.8.0_242"
  • OpenJDK运行环境(构建1.8.0_242-b08)。
  • OpenJDK 64位服务器虚拟机(build 25.242-b08,混合模式)。

如果我删除我一直添加的参数,Tomcat工作得非常好。

为什么会发生这个错误,为什么我不能让Tomcat用任何一个参数启动?

我一直在设置它主要是在 /etc/sysconfig/tomcat 在...之下 JAVA_OPTS,但已经尝试了其他位置。

java tomcat centos centos7
1个回答
0
投票

对于其他在Centos7上做这件事并且有同样问题的人,在尝试了无数种东西之后,这是解决它的事情......正如Mikematic在这里所回答的那样。https:/stackoverflow.coma5653680513223528。

这与Tomcat的配置没有任何关系,是RHEL和CentOS盒子上的SELinux阻止了对与默认Tomcat安装无关的文件夹的读写权限。这是RHEL和CentOS上的SELinux阻止了对不与默认Tomcat安装相关的文件夹的读写权限。要解决这个问题,安装SELinux管理工具,并为tomcat_t SELinux类型设置permissive。

yum install selinux-policy-devel

semanage permissive -a tomcat_t
© www.soinside.com 2019 - 2024. All rights reserved.