resin4.0服务器远程调试说明

一、开发环境介绍:

目前dev用resin 做为服务容器。服务调用之间过于复杂,要进行本地代码调试过于复杂,甚至没法进行。可是能够经过jvm的远程代码调试来达到本地代码调试的目的,步骤以下。java

二、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>nginx

    <!-- 在本行注释下面添加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>api

//说明 :这两行参数开启了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配置的转发失败,找运维确认。

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

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

 

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

 

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

 

 

最后肯定远程debug服务是否成功,点击debug运行后出现相似如下内容说明远程debug链接成功。jvm

四、JVM远程调试总体架构图:

相关文章
相关标签/搜索