DWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)异常启动tomcat的web程序时会先弹出javaw.exe

JDWP
  JDWP 协议介绍
  协议分析
  Packet 的结构
  JDWP 传输接口(Java Debug Wire Protocol Transport Interface)
  JDWP 的命令实现机制
  JDWP 的事件处理机制
  JPDA(Java Platform Debugger Architecture) 是 Java 平台调试体系结构的缩写,通过 JPDA 提供的 API,开发人员可以方便灵活的搭建 Java 调试应用程序。JPDA 主要由三个部分组成:Java 虚拟机工具接口(JVMTI),Java 调试线协议(JDWP),以及 Java 调试接口(JDI)

  其中常用的开发平台Eclipse中自带了JDWP兼容的调试器,命令行中常见的有jdb等


问题原因:
该故障是JVM远程debug存在的缺陷,只有在开启远程debug端口时才会出现;原因是由于接收到不符合JDWP协议的数据包,导致JVM崩溃。
要确认系统中是否存在该漏洞,可以检查java启动参数中是否有如下相关配置:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8787
或者-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8787

若存在相关配置,那就说明java启动了远程调试端口,就会存在该漏洞;此时JVM虚拟机作为调试的服务提供端,通过8787端口监听一个连接,而调试器通过该连接与虚拟机进行交互。

我这里是eclipse的tomcat的VM设置不对,原先是:


原先是:${jrebel_args} -Dcatalina.base="E:\eclipse_work_app\.metadata\.plugins\org.eclipse.wst.server.core\tmp0" -Dcatalina.home="D:\apache-tomcat-7.0.70" -Dwtp.deploy="E:\eclipse_work_app\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps" -Djava.endorsed.dirs="D:\apache-tomcat-7.0.70\endorsed"-Xms256m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=1024


乱起八糟的我也看不懂,于是,百度一圈就留下,-Dcatalina.base="E:\eclipse_work_app\.metadata\.plugins\org.eclipse.wst.server.core\tmp0"

这一句,其他的都删掉,再次启动就好了。原因应该是执行运行其他gwt项目的时候tomcat的VM设置受到了干扰。运行一次之后,VM的配置如下:

-Dcatalina.base="E:\eclipse_work_app\.metadata\.plugins\org.eclipse.wst.server.core\tmp1" -Dcatalina.home="D:\apache-tomcat-7.0.70(3)\apache-tomcat-7.0.70" -Dwtp.deploy="E:\eclipse_work_app\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps" -Djava.endorsed.dirs="D:\apache-tomcat-7.0.70(3)\apache-tomcat-7.0.70\endorsed"

系统会给我们自动配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老马识途2.0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值