文档章节

远程调试tomcat

laigous
 laigous
发布于 2015/03/30 10:24
字数 657
阅读 562
收藏 23

程序就是这么一个神奇的东西,有时你的一个项目,在本机上运行得还是好好的,可当你把这货放到了服务器上,同样的条件就是结果不一样。于是就灰常想看一下程序在远程运行时候的状态,希望让程序在远程运行,还可以在本机打断点跟一下,这就用到了用eclipse远程调试Tomcat。记得以前好久之前研究了一下,怎么也没弄成功。最近终于OK啦。

一、调试准备

首先得有一个在远程服务器上的Tomcat与一个在本地的Eclipse,还有就是一个已经部署在远程Tomcat上并且源代码在本地Eclipse上的程序。当然如果木有远程的服务器就用自己的本机当远程的服务器试下也行哈。

二、配置tomcat

1、如果远程服务器是Windows NT的环境,那就在%CATALINE_HOME%/bin 下建立debug.bat文件,在里面贴入如下内容: 

set JPDA_ADDRESS=8888 

set JPDA_TRANSPORT=dt_socket 

set CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8888 

startup

其中的两处8787是要启用的远程端口,当然任何未被使用的端口都可以。连接方式有两种,为dt_shmem和dt_socket,分别表示本机调试和远程调试。 

2、如果远程服务器是Linux/Unix环境,就编辑%CATALINE_HOME%/bin/startup.sh文件,找到其中最后一行,将

exec "$PRGDIR"/"$EXECUTABLE" start "$@" 

改为

exec "$PRGDIR"/"$EXECUTABLE" jpda start "$@"

默认的远程调试端口是8000,如果被占用,编辑%CATALINE_HOME%/bin/catalina.sh文件,将

JPDA_ADDRESS="8000"

改为

JPDA_ADDRESS="8888"

3 、在Windows下运行debug.bat 在Linux下运行 startup.sh启动Tomcat。

如果在启动日志中出现

Listening for transport dt_socket at address: 8888

则说明远程调试端口监听成功。

三、配置Eclipse

 在要调试的项目上右键,选择 调试方式->调试配置

打开配置界面,选择 远程Java应用程序 新建一个远程调试

IP地址就是远程服务器IP地址,端口是刚才配置的Tomcat的远程调试监听端口。配置好后点应用调试

这时打开调试界面就可以看到线程状态,也可以随时断开调试。

四、调试程序

接下来就可以正常的打断点来调试远程服务器上的Java程序了,可以随时查看变量状态等,还是十分Happy的。不过目前没能把System.out.println()的东西打印到本地,如果有这样一种方法,谁知道请不吝赐教哦!~


本文转载自:http://www.cnblogs.com/younggun/archive/2013/08/20/3269284.html

laigous
粉丝 32
博文 69
码字总数 37878
作品 0
杭州
高级程序员
私信 提问
Java远程调试(Remote Debugging)的那些事

本文主要基于一篇英文原作翻译而成,删减部分无用文字,添加了必要的注解和补充。 英文原文是一篇对远程调试讲解很通俗的博文: http://blog.trifork.com/2014/07/14/how-to-remotely-debug...

曲高和寡_健
2017/04/21
0
0
MyEclipse远程调试Tomcat

程序就是这么一个神奇的东西,有时你的一个项目,在本机上运行得还是好好的,可当你把这货放到了服务器上,同样的条件就是结果不一样。于是就灰常想看一下程序在远程运行时候的状态,希望让程...

刘显示
2015/09/14
175
0
使用IDEA远程调试Cenos下的Tomcat

关于以JPDA的方式远程调试tomcat说明: 打开tomcat bin目录下的catalina.sh可看到如下说明: JPDATRANSPORT:指的是调试者与被调试者的交互方式,dtsocket是通过网络socket的方式,dt_shmem(...

scgaopan
06/25
22
0
TOMCAT远程调试

tomcat远程调试 今天因为项目部署到服务器上后发现tomcat启动的一个netty 服务客户端无法连接也不知道是哪里出了问题,晚上突然想到了以前接触过得远程调试,晚上加点班学习一下tomcat的远程...

麦穗
2016/03/02
137
0
在Intellij下远程调试tomcat应用(含tomcat源码调试)

环境 服务器: 操作系统:centos6 jdk:1.7 tomcat:8.5.9 本地: 操作系统:mac osx 10.11.6 jdk:1.7 intellij:2016.2 tomcat:8.5.9(本地也需要下载tomcat) 应用调试步骤 java应用远程...

wooyoo
2017/01/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7.6中安装使用fcitx框架

内容目录 一、为什么要使用fcitx?二、安装fcitx框架三、安装搜狗输入法 一、为什么要使用fcitx? Gnome3桌面自带的输入法框架为ibus,而在使用ibus时会时不时出现卡顿无法输入的现象。 搜狗和...

技术训练营
昨天
5
0
《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
昨天
8
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
昨天
10
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
昨天
6
0
PHP+Ajax微信手机端九宫格抽奖实例

PHP+Ajax结合lottery.js制作的一款微信手机端九宫格抽奖实例,抽奖完成后有收货地址添加表单出现。支持可以设置中奖概率等。 奖品列表 <div class="lottery_list clearfix" id="lottery"> ......

ymkjs1990
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部