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

DWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)异常启动tomcat的web程序时会先弹出javaw.exe「建议收藏」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设置不对,原先是:

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

原先是:${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”

系统会给我们自动配置。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106179.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 基于DNS的GSLB,基于应用重定向的GSLB,基于主机路由注入的GSLB

    基于DNS的GSLB,基于应用重定向的GSLB,基于主机路由注入的GSLB基于DNS的GSLB,基于应用重定向的GSLB,基于IP地址伪装(三角传输)的GSLB,基于主机路由注入的GSLB(Anycast)引言在过去的几年中,随着互联网的快速发展和企业应用WEB化,服务器负载均衡(SLB)技术已经不再陌生。服务器负载均衡根据用户数据请求中的4-7层信息将其智能转发到后端少则数台多则成…

    2022年5月9日
    47
  • python字符串的使用方法_python字符串是什么

    python字符串的使用方法_python字符串是什么python字符串常用方法find(sub[,start[,end]])在索引start和end之间查找字符串sub​找到,则返回最左端的索引值,未找到,则返回-1​start和end都可

    2022年8月6日
    7
  • python怎么换行输出的数字对齐_python中如何使输出换行「建议收藏」

    Python的print()函数输出时,通常输出结果是整行显示出来的,这时候我们需要考虑一下,我们输出的结果需不需要换行?不需要换行的方法也是嗯容易的的,这里就不多赘述了,来说说如何做到输出换行:常用的转义符方式:\n#-*-coding:utf-8-*-A=”来看看能不能\n换行。”print(A)输出结果来看看能不能换行。使用三引号进行换行:”””value1;value2;value3…

    2022年4月9日
    116
  • Android【防抖操作的工具类】

    Android【防抖操作的工具类】

    2021年3月12日
    168
  • java定义一个数组并初始化_java中什么是数组

    java定义一个数组并初始化_java中什么是数组介绍学习Java的朋友想必对数组并不陌生,它需要使用之前对其进行初始化,这是因为数组是引用类型,声明数组只是声明一个引用类型的变量,并不是数组对象本身,只要让数组变量指向有效的数组对象,程序中就可使用该数组变量来访问数组元素。所谓数组初始化就是让数组名指向数组对象的过程,该过程主要分为两个步骤,一是对数组对象进行初始化,即为数组中的元素分配内存空间和赋值,二是对数组名进行初始化,即为数组名赋值为数…

    2025年11月10日
    3
  • 2019年5月25更新——“运动世界校园”软件破解

    一、软件工作原理软件和后台使用API进行交互,在早期版本中API没有鉴权导致可以通过伪造请求来完成跑步,但是后期API迭代了好几个版本,目前认为现在的请求需要间隔一个合理的时间差(跑步时间),而且需要计算一个token用来鉴权,避免了伪造请求。 跑步开始和跑步完成时,会记录时间、设备序列号、IMEI等敏感信息,上传服务器。此操作用来记录手机设备唯一性,用来检测频繁换手机,一台设备上登陆不同账…

    2022年4月7日
    199

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号