远程调试

开启Tomcat远程调试

被刻印的时光 ゝ 提交于 2019-12-05 15:20:57
如何远程调试tomcat 一,Linux环境下 1. 服防火墙打开8000端口,允许外网访问; 2. 修改catalina.sh:搜索到如下行: JPDA_ADDRESS="localhost:8000" 改为: JPDA_ADDRESS="0.0.0.0:8000" 意为:允许所有ip连接到8000端口,而不仅是本地。 参考catalina.sh.debug的配置。 2. 执行下列命令开启调试模式: /usr/local/tomcatDev/bin/catalina.sh jpda run 3. 在tomcat上创建远程调试,地址为tomcat所在服务器,端口为8000. 4. 在eclipse中,通过Debug Configuration - > Remote Java Application - > new 创建一个远程调试 二,Windows环境下 1. 服防火墙打开8000端口,允许外网访问; 2.在tomcat的bin目录下创建一bat文件,如debug.bat,将其内容修改为一下 set JPDA_ADDRESS=8000 set JPDA_TRANSPORT=dt_socket set CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket

Intellij IDEA远程调试tomcat

戏子无情 提交于 2019-12-03 22:45:05
公司现在的开发要从eclipse切换到idea,跟上潮流。而且大数据项目也逐渐增多,很多时候需要在linux上调试。今天就总结一下如何使用idea远程调试tomcat。 1)tomcat配置。部署是调试的基础,要将war部署到tomcat对应文件夹下。编辑bin/catalina.sh,添加如下字符串。其中ip是远程tomcat地址,9090端口是后面用到的jmx端口。 export CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.80.128" export JAVA_OPTS="-Dcom.sun.management.jmxremote= -Dcom.sun.management.jmxremote.port=9090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

解决家庭网络下PHPStorm无法连接线上主机xdebug服务的配置问题

亡梦爱人 提交于 2019-12-01 02:04:52
目前的现象是phpstorm + xdebug能调试连上我笔记本上虚拟机中的web服务, 却连不上在线web主机. 擦擦, 以前也没直接连到在线主机来调试, 一直都是本地调试, 这次情况特殊就歇菜了. 搞了一个通宵, 累死找到原因. 原来xdebug是 把本地的phpstorm IDE作为调试过程中的服务端的, web服务运行的主机才是client!!!! 然后我设置web服务上的xdebug一直都是接受全部调试回连请求 xdebug.remote_connect_back = 1 没有指定ip, 这样虚拟机中的web服务倒是能回连上笔记本实机中的phpstorm 可是我那个在线的web服务主机要socket回连到我的phpstorm就得穿过光纤猫->穿过路由器->再到我的phpstormIDE, 由于xdebug检测到的公网ip是分配给光纤猫的, 这样调试回连的socket直接被中间者光纤猫给截断了, 无法到达我笔记本上的phpstorm。 可见, debug过程中, C/S架构,谁是C, 谁是S, 思想概念上颠倒个对象顺序直接就坑死我了, 以前也没看太仔细xdebug的架构介绍, 这次就擦擦了. 如果phpstorm是作为debug过程的C端的话, 是万万不会浪费我一通宵的额 也罢, 找到原因就解决问题, 访问光纤猫配置页, 将其DMZ主机设置为我的笔记本,

PlayFramework 2.x 技巧-远程调试

妖精的绣舞 提交于 2019-11-30 11:22:55
1. 测试环境 Eclipse for JavaEE 1.5.0, Play 2.0.4 2. 创建测试项目 1)play new test_play 2) 切换当前目录到test_play, 执行play eclipsify,并将项目导入Eclipse, 3) 在controllers.Application.index()方法中添加一个临时变量,一会在Eclipse的Debug视图中查看这个变量的值, 4)在浏览器中访问应用, 2. 在调试模式下启动test_play项目 1) 在开发模式下启动项目 上图中第2行信息指示,远程调试功能成功开启,连接端口号为9999。 关于Play调试功能的实现方法,请参考JPDA相关知识。 当然,也可以在产品模式下开启调试功能,执行命令如下: play debug start -Xms1024M -Xmx1024M -server start 命令后面可以直接跟上java命令参数。 3. 利用Eclipse进行远程调试 1)在Eclipse中右击test_play项目,依次选择Debug As > Debug Configurations..., 2) 在弹出窗口中,右击Remote Java Application,选择New, 3)填写远程调试的连接信息,Host填写localhost, Port填写9999 4

远程调试运行在Resin上面的Web应用程序

淺唱寂寞╮ 提交于 2019-11-29 04:36:26
有时候,我们不得不放弃在本地调试我们的程序,把我们的程序先布署到服务器,然后把调试信息都记在日志中,用眼睛瞅日志来调试程序。 不是用这种方式不行,只是效率太低,本来写程序是一件开心的事情,却变得令人心烦。 其实,Java本身支持远程调试,只要增加一些JVM的启动参数,就可以远程调试了,JVM启动参数就像下面的样子: -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,address=9988,suspend=n 下面是参数的说明: -XDebug 启用调试。 -Xnoagent 禁用默认sun.tools.debug调试器。 -Djava.compiler=NONE 禁止 JIT 编译器的加载。 -Xrunjdwp 加载JDWP的JPDA参考执行实例。 transport 用于在调试程序和 VM 使用的进程之间通讯。 dt_socket 套接字传输。 dt_shmem 共享内存传输,仅限于 Windows。 server=y/n VM 是否需要作为调试服务器执行。 address=9988 调试服务器的端口号,客户端用来连接服务器的端口号。 suspend=y/n 是否在调试客户端建立连接之后启动 VM 。 写出来的样子大概是这样的: java -Xdebug -Xnoagent