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. 使用iSCSI服务部署网络存储

  2. JS制作图片切换

    <!DOCTYPE html> <html> <head> <title>纯JS制作简单的图片切换</title> <meta cha ...

  3. 出现 OSError: symbolic link privilege not held的解决方案

    jupyter notebook  出现 OSError: symbolic link privilege not held问题时  以管理员方式重新打开prompt.

  4. dispatherServlet拦截所有请求,但是不拦截JSP和其他配置的servelt

    不是顺序问题,是就不拦截Servlet 不是load-on-startup启动先后顺序问题,是就是不拦截Servlet. SpringMVC默认用的是第二个 //<url-pattern> ...

  5. myEclipse+Spring boot+Hbuilder+jwt Token+mongoDB+企业微信H5开发

    企业微信应用的H5开发 1.参考文档:weUI:http://jqweui.com/ 2.企业微信接口文档:https://work.weixin.qq.com/api/doc#10029 3.百度地 ...

  6. GetPJData - uGetHttpData.pas

    function GetPJData(APage: Integer): string; var IdHTTP: TIdHTTP; url: string; paramsList: TStringLis ...

  7. JavaScript 学习笔记(基础学习)

    一:来自W3School工具的学习 1:document.getElementById(id) : 访问某个标签的元素,然后对它进行操作 .innerHTML 对其内容进行修改 2:document. ...

  8. 如何快速开发html5跨平台K12/幼儿交互课件、动画课件、交互游戏

    flash交互课件能生动表达教学内容,也深受广大教育工作者的喜爱,但是目前flash课件只能在pc电脑平台上进行展示,随着移动网络的发展,越来越多的课件产品需要移殖到各种移动平台(手机,pad,智能电 ...

  9. msf help.

    root@Debian:~# msfconsole [-] ***rtiNg the Metasploit Framework console...- [-] * WARNING: No databa ...

  10. scrapy 快速入门

    https://blog.csdn.net/u011054333/article/details/70165401