• idea远程debug调试设置


    1、idea设置

    1.1 加入Tomcat Server选择Remote 

    1.2:设置对应的參数 

    • xxx.xxx.152.67:8080为远程Tomcatserver的IP地址和port,这里能够设置域名。比如:http://security.xxxx.cn/login.do

    • 60222这个port为1.1步中设置的debugport。适合tomcat的port不一样的;

    • 这里的Remote staging选择的都是same file system,这就要求本地代码和远程Tomcat的代码要一直;1

    1.3 Startup/Connection 

     选择Debug、Socket、调试port这里是60222

    1.4:选择执行

    然后点击右边的debug就可以执行(首先Tomcat要启动)

    1.5:是否成功

    能够看到已经连接成功,

    查看Tomcatserver日志。例如以下: 

    6、假设失败

    • 假设出现port被拒绝:
    • 这样的可能是tomcat并未启动,或者遇错误停止,重新启动Tomcat就可以

      • 连接失败。其它问题

      首先在server端查看 调试port 这里是60222的使用情况

    • 2.使用netstat 
      使用netstat -anp|grep 80 
      1. netstat -tln|grep 80 
      2. ps -ef|grep tomcat 查看tomcat是否关闭
      3.  tail - f 10000 catalina.out  查看日志
    • 1.使用lsof  不好使不知道为什么

    • kill -9 12122 删除进程

    2、Linux服务器设置

    在tomcat下bin文件夹下catalina.sh文件中添加下面的定义:

    CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=60222,suspend=n,server=y"

    拓展:

    TALINA_OPTS vs JAVA_OPTS

    在Tomcat的catalina.sh文件中的启停server脚本中都应用到了两个变量: CATALINA_OPTS和JAVA_OPTS。用于保存Tomcat运行所需的各种参数。 
    他们在文件中的注释如下: 
    (可选)Java 执行"start","stop"或"run"命令时用到的运行时参数; [JAVA_OPTS] 
    (可选)Java 执行"start"或"run"命令时用到的运行时参数; [CATALINA_OPTS] 
    那么,为什么有两个不同的变量?他们有什么区别? 
    首先,定义在这两个变量中的参数都会被传递到启动Tomcat的命令:"start"和"run",只有定义在JAVA_OPTS中的参数会被传递到"stop"命令。 
    所以将参数定义到哪个变量中并不影响Tomcat的启动和运行,而只影响到了Tomcat的运行结束。 
    第二种区别更加微妙。其他应用程序也可以使用JAVA_OPTS,但Tomcat只会用到CATALINA_OPTS。所以如果你只使用了Tomcat,在设置环境变量时,你最好使用CATALINA_OPTS,而如果你同时也用到了其他java应用程序,如JBoss,在设置环境变量时你应该使用JAVA_OPTS。

    注意:address=60222 这个是后边IDEA设置的时候须要用到的调试port,能够随意设置一个未使用的port。可是后边的配置都要一致.

    三. 参数解释:

    1. JAVA支持调试功能,并提供了一个简单的调试工具JDB,其可支持设置断点及线程级的调试;

    2. 各参数解释:

    -Xdebug是通知JVM工作在DEBUG模式下

    -Xrunjdwp是通知JVM使用(java debug wire protocol)来运行调试环境。该参数同时了一系列的调试选项:

    transport指定了调试数据的传送方式,dt_socket是指用SOCKET模式,另有dt_shmem指用共享内存方式,其中,dt_shmem只适用于Windows平台。
    server参数是指是否支持在server模式的VM中.
    onthrow指明,当产生该类型的Exception时,JVM就会中断下来,进行调式。该参数可选。
    launch指明,当JVM被中断下来时,执行的可执行程序。该参数可选
    suspend指明,是否在调试客户端建立起来后,再执行JVM。
    onuncaught(=y或n)指明出现uncaught exception 后,是否中断JVM的执行.

     拓展:

    http://www.51testing.com/html/68/n-3719568.html

    https://blog.csdn.net/u014513883/article/details/53583495

  • 相关阅读:
    SpringBoot 整合Redis
    IDEA 修改之前保存的git地址的账号和密码
    SpringBoot 上传文件功能
    JAVA结合 JSON Web Token(JWT) 工具类
    SpringBoot 整合Spring Security框架
    Sublime Text3 设置
    Python 正则表达式
    Django+uWSGI+Nginx 部署网站
    web 设计中引入字体
    HTML 超链接返回上一级
  • 原文地址:https://www.cnblogs.com/yw-ah/p/9102355.html
Copyright © 2020-2023  润新知