zoukankan      html  css  js  c++  java
  • 没有项目的源码,在eclipse下进行tomcat的远程调试,小计一下。

    最近需要对于一个上了年纪的项目进行维护,但是由于历史悠久,没有办法找到该项目对应的比较完整的源码,

    因此经过了一番挣扎之后,最终利用tomcat的远程调试来解决问题。(前提是有人对于该项目有一定的熟悉程度)

    1.通过分析问题,找到可能出现该问题的class文件,暂时无法打开在这些文件。

    2.对这些文件进行反编译,从而得到我们熟悉的Java文件。(反编译的工具挺多的,具体哪一种比较稳定实用还待考证。反编译工具使用的是jadx)

    3.在eclipse中新建一个Java项目,只需要加入之前得到的Java文件,目录结构必须保持对应。(引入这几个类所依赖的class文件,这些Java文件编译报错好像也并没有影响调试,但是看到标红会有强迫症)

    4.关闭web服务器,修改tomcat根目录下的bin文件夹中的startup.bat,在其中加上(其中的端口号8000,这个值自己设定,只要确认该端口没有被占用)

    SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000

      加入的具体位置 如下

    5.启动项目,tomcat的命令行窗口第一行会看到  Listening for transport dt_socket at address: 8000,表示该端口正在被监听,等待连接。

    6.在Debug Configurations增加远程调试配置,Port与上面的端口保持一致。

    project 就是刚才创建的新项目,点击Browser可以进行选择。

    Host就是启动的tomcat 所在服务器的IP,

    Port就是刚才设定的等待连接的端口。

     7.点击debug,在需要调试的地方打上断点,在浏览器访问tomcat中的项目,等待结果的到来。

    备注:刚开始使用的方式是将class文件拷贝出来,然后进行反编译得到Java文件,

       在其中加上打印语句,然后在进行编译成class文件放到原来的位置,

       这样调试不仅比较麻烦(需要不断的重启服务),有时候报错没有在控制台输出信息(比较郁闷,还没找到原因)

    小发现就是在使用eclipse进行Java文件编译的时候,可以加入一些外部的class文件进行构建,有点爽。

  • 相关阅读:
    转部机器人相关的电视剧
    斯坦福大学自然语言处理第一课“引言(Introduction)”
    丹尼斯·洪:讲述他的七种全地形机器人
    斯坦福大学自然语言处理公开课课件汇总
    大数据挖掘
    脑机接口技术真能破译我们的想法吗?
    现代战场 机器人的崛起
    斯坦福大学自然语言处理第三课“最小编辑距离(Minimum Edit Distance)”
    MIT开放式课程“自然语言处理”介绍
    斯坦福大学自然语言处理第六课“文本分类(Text Classification)”
  • 原文地址:https://www.cnblogs.com/joeking/p/12489464.html
Copyright © 2011-2022 走看看