1、开发环境介绍:

目前dev用resin 作为服务容器。服务调用之间过于复杂,要进行本地代码调试过于复杂,甚至无法进行。但是可以通过jvm的远程代码调试来达到本地代码调试的目的,步骤如下。

2、resin4(dev环境版本为resin4) 环境远程服务搭建步骤:

//1.确定服务器上resin的版本。进入resin服务的bin目录;例如pk服务的目录是:/data/app/resin_pk/bin/ ,在服务部署的服务器上执行命令:
sh resin.sh version
//确认版本信息是4.0版本: Resin-4.0.27 (built Thu, 22 Mar 2012 06:14:10 PDT)
 
//2.先在远程的resin修改conf(pk服务的conf目录为:/data/app/resin_pk/conf)中resin.xml配置文件 在<server-default>标签中添加 红色字体的两行

<server-default>

<!-- 在本行注释下面添加JVM标签 -->
        <http address="*" port="9991"/>
       <jvm-arg>-Xdebug</jvm-arg>
        <jvm-arg>-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8889</jvm-arg>
    </server-default>

//说明 :这两行参数开启了JVM的远程debug模式,并将端口 8889作为远程调试的端口

//3.以上配置完成以后重启resin服务器,进入resin的bin目录执行:
sh resin.sh stop
sh resin.sh start
//说明,此处用restart命令应该也可以,我当时用restart后没有查到端口号,可能是查询太早了,没有等服务完全启动。
//4.查看端口号,确认远程端口开启成功。如果能查询到内容证明端口开启成功,查询不到则没有开启成功。注意,要等服务完全启动后再查询,否则可能查询不到。
netstat -an | grep 8889
 
//6.需要运维同学配置nginx端口转发,将应用部署服务器的8889端口映射到外网端口(因为外网无法直接访问dev服务器)
nginx配置完毕后,后向运维同学询问nginx外网对应的ip和端口号。
//7.在本地的mac电脑上执行telnet命令查询nginx端口是否转发成功。例如nginx对外的ip地址是:54.223.118.178 应用对外映射的端口号是:8889
telnet 54.223.118.178 8889
//如图则开启成功,否则nginx配置的转发失败,找运维确认。

3、在idea中配置远程的ip和端口,并选定应用进行调试:

run选项中→ Edit Configuration→  左上角 + 号 → 选择新建remote 选项

最后给远程服务取一个名字,填写nginx的ip和端口,选择远程部署的项目并保存,这时就大功告成了。

调试使用:只需要选择刚才新建的名称,点击debug,选择在对应的方法打上断点;服务在调用远程dev上的接口时就会进入本地的idea代码。

最后确定远程debug服务是否成功,点击debug运行后出现类似以下内容说明远程debug连接成功。

4、JVM远程调试整体架构图:

resin4.0服务器远程调试说明的更多相关文章

  1. SpringBoot2.0(四) 远程调试

    和tomcat远程调试近似的配置,主要的配置如下所示: -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=10009 在 ...

  2. windows服务器下tomcat 8.0 配置远程调试

    在tomcat的bin目录下, 添加debug.txt文件, 然后输入: set JPDA_ADDRESS=9901set JPDA_TRANSPORT=dt_socketset CATALINA_O ...

  3. weblogic远程调试XMLDecoder RCE CVE-2017-10271

    首先说一下远程调试的配置,首先在weblogic的启动文件加入如下配置,开启服务器远程调试端口就是9999: 第二步,建立一个java的空项目. 第三步将weblogic的所有jar包拷出来,放到一个 ...

  4. 使用Eclipse进行远程调试

    转自:http://blog.csdn.net/sunyujia/article/details/2614614 今天决定做件有意义的事,写篇图文并茂的blog,为什么要图文并茂?因为很多事可能用语言 ...

  5. 使用Eclipse进行远程调试【转】

    今天决定做件有意义的事,写篇图文并茂的blog,为什么要图文并茂?因为很多事可能用语言也说不明白,从以前我发表的一篇文章可以看得出来,http://blog.csdn.net/sunyujia/arc ...

  6. tomcat使用Eclipse进行远程调试(线上调试)

    什么是远程调试,就是在A机器上利用Eclipse单步跟踪调试B机器上的Web应用,当然调试A机器上Web应用也是没有问题的,90%我都是调试本机的Web应用,远程调试的意义我想我不用说了,大家都会想到 ...

  7. 【Java】使用Eclipse进行远程调试,Windows下开启远程调试

    原博链接:http://blog.csdn.net/sunyujia/article/details/2614614   今天决定做件有意义的事,写篇图文并茂的blog,为什么要图文并茂?因为很多事可 ...

  8. eclipse/intellij idea 远程调试hadoop 2.6.0

    很多hadoop初学者估计都我一样,由于没有足够的机器资源,只能在虚拟机里弄一个linux安装hadoop的伪分布,然后在host机上win7里使用eclipse或Intellj idea来写代码测试 ...

  9. IDEA远程调试服务器代码

    先在idea添加一个remote,host填服务器ip,port填监听服务器端口,默认5005 然后在服务器tomcat catalina.sh 添加(红色部分): JAVA_OPTS="$ ...

随机推荐

  1. P2930 [USACO09HOL]假期绘画Holiday Painting

    线段树水题,考虑到只有15列,所以我们对于每一列,我们都去维护一个线段树. 现在来考虑一下修改操作,因为每次修改的时候,我们都是将黑的改成白的,白的改成黑的,所以我们对线段树的每个节点维护当前这段区间 ...

  2. jquery考试成绩统计系统

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. Matlab高级绘图

    http://blog.csdn.net/haizimin/article/details/50372630 图形是呈现数据的一种直观方式,在用Matlab进行数据处理和计算后,我们一般都会以图形的形 ...

  4. c++ 调用 wmi 获取数据

    #define _WIN32_DCOM #include <iostream> using namespace std; #include <comdef.h> #includ ...

  5. Django之 静态模板渲染

    既可以简单的 django.http.HttpResponse 来把内容显示到网页上,也可以使用渲染模板的方法来显示内容. 说明:代码是基于 Django 1.8,但 Django 1.4 - Dja ...

  6. DevExpress Grid使用checkBox选中的方法

    到官网得到消息自13.2版本后的Dev Grid中均内置了CheckBox列多选功能.在寻找答案的过程的成果进行记录. 一.13.2版本以后用法 启用多选列 对Gird中的View进行以下属性设置: ...

  7. DevExpress中GridControl的使用笔记(转)

    转自:https://www.jianshu.com/p/badc1d2f0841 注:练习例子为: DxApplication1 -> XtraForm1 , 例子上传到本博中 2019.4. ...

  8. HanLP 自然语言处理 for nodejs

    HanLP 自然语言处理 for nodejs ·支持中文分词(N-最短路分词.CRF分词.索引分词.用户自定义词典.词性标注),命名实体识别(中国人名.音译人名.日本人名.地名.实体机构名识别),关 ...

  9. Redis 单机部署

    参考文章: https://www.cnblogs.com/zy-303/p/10273167.html#_label0 https://blog.csdn.net/linyifan_/article ...

  10. Charles断点调试