文档章节

tomcat+myeclipse配置远程调试

simon1986
 simon1986
发布于 2014/06/06 10:55
字数 667
阅读 9120
收藏 7

作为一名开发人员多多少少会遇到各种问题,在众多问题中或许你也会遇到:在本地都运行的好好的,可是发布到服务器后怎么就出问题了呢?出现这种问题的原因有很多种,可到底是什么原因引起的呢?我们开发过程中通常都是通过myeclipse的debug来查找原因,总不可能在服务器上安装myeclipse来调试程序吧?那怎么办?没关系,还好有jpda(全称JavaTM Platform Debugger Architecture)这个东东,需要在tomcat的启动文件(startup.bat)中配置jpda,为了不修改原有的文件,我们新增一个startup_debug.bat,内容如下:

@echo off
rem Licensed to the Apache Software Foundation (ASF) under one or more
rem contributor license agreements.  See the NOTICE file distributed with
rem this work for additional information regarding copyright ownership.
rem The ASF licenses this file to You under the Apache License, Version 2.0
rem (the "License"); you may not use this file except in compliance with
rem the License.  You may obtain a copy of the License at
rem
rem     http://www.apache.org/licenses/LICENSE-2.0
rem
rem Unless required by applicable law or agreed to in writing, software
rem distributed under the License is distributed on an "AS IS" BASIS,
rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
rem See the License for the specific language governing permissions and
rem limitations under the License.

if "%OS%" == "Windows_NT" setlocal
rem ---------------------------------------------------------------------------
rem Start script for the CATALINA Server
rem
rem $Id: startup.bat 895392 2010-01-03 14:02:31Z kkolinko $
rem ---------------------------------------------------------------------------

rem Guess CATALINA_HOME if not defined
set "CURRENT_DIR=%cd%"
if not "%CATALINA_HOME%" == "" goto gotHome
set "CATALINA_HOME=%CURRENT_DIR%"
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
cd ..
set "CATALINA_HOME=%cd%"
cd "%CURRENT_DIR%"
:gotHome
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
echo The CATALINA_HOME environment variable is not defined correctly
echo This environment variable is needed to run this program
goto end
:okHome

set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat"

rem Check that target executable exists
if exist "%EXECUTABLE%" goto okExec
echo Cannot find "%EXECUTABLE%"
echo This file is needed to run this program
goto end
:okExec

rem Get remaining unshifted command line arguments and save them in the
set CMD_LINE_ARGS=
:setArgs
if ""%1""=="""" goto doneSetArgs
set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
shift
goto setArgs
:doneSetArgs

set JPDA_TRANSPORT=dt_socket
set JPDA_ADDRESS=8000
set JPDA_SUSPEND=n

call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS%

:end

内容与startup.bat几乎一致,标黑的脚本为新增的脚本,启动时启动startup_debug.bat即可

参数解释:

jpda_transport=dt_socket(JPDA front-end和back-end之间的传输方法。dt_socket表示使用套接字传输。)

jpad_address=8000(JVM在8000端口上监听请求。)

jpda_suspend=n(n表示直接启动监听端口和JVM,y表示启动的JVM会暂停等待,直到调试器连接上。)

 

配置本地的myeclipse

 右键需要调试的工程debug asdebug configurationsnew 一个java remote application,填写如下图,信息填写正确后,点击debug即可进行远程调试了。

 

 

 注意:1、调试时需要保持本地代码和服务器上代码一致

          2、确认防火墙关闭

© 著作权归作者所有

下一篇: tomcat 配置https
simon1986
粉丝 0
博文 6
码字总数 1571
作品 0
福州
私信 提问
MyEclipse远程调试Tomcat

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

刘显示
2015/09/14
175
0
使用IntelliJ IDEA进行远程调试

远程调试服务器是一个比较实用的技巧,以便我们能够迅速定位线上问题。本文会介绍如何在IntelliJ IDEA中进行远程调试。 配置IntelliJ IDEA 选择Edit Configurations ——>+号(Add New Confi...

JackieYeah
2015/11/01
25.1K
1
Java远程调试(Remote Debugging)的那些事

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

曲高和寡_健
2017/04/21
0
0
使用phpstorm和xdebug实现远程调试

使用phpstorm和xdebug实现远程调试2012-05-23 10:06:35 vs的断点调试功能很强大有木有,能查看所有变量有木有。php调试很麻烦有木有,echo,var_dump写得你想吐了有木有。想体验一下ide调试的...

thinkyoung
2015/09/08
0
0
MyEclipse服务器远程调试

简介 这是一个关于讨论配置和调试在应用程序服务器上运行而不使用MyEclipse服务器启动连接器的应用程序的高级教程,无论MyEclipse是在 同一台计算机上运行或是在不同的计算机上运行都可。对于...

百mumu
2016/06/14
65
0

没有更多内容

加载失败,请刷新页面

加载更多

SpringBoot中 集成 redisTemplate 对 Redis 的操作(二)

SpringBoot中 集成 redisTemplate 对 Redis 的操作(二) List 类型的操作 1、 向列表左侧添加数据 Long leftPush = redisTemplate.opsForList().leftPush("name", name); 2、 向列表右......

TcWong
今天
7
0
排序––快速排序(二)

根据排序––快速排序(一)的描述,现准备写一个快速排序的主体框架: 1、首先需要设置一个枢轴元素即setPivot(int i); 2、然后需要与枢轴元素进行比较即int comparePivot(int j); 3、最后...

FAT_mt
昨天
4
0
mysql概览

学习知识,首先要有一个总体的认识。以下为mysql概览 1-架构图 2-Detail csdn |简书 | 头条 | SegmentFault 思否 | 掘金 | 开源中国 |

程序员深夜写bug
昨天
10
0
golang微服务框架go-micro 入门笔记2.2 micro工具之微应用利器micro web

micro web micro 功能非常强大,本文将详细阐述micro web 命令行的功能 阅读本文前你可能需要进行如下知识储备 golang分布式微服务框架go-micro 入门笔记1:搭建go-micro环境, golang微服务框架...

非正式解决方案
昨天
9
0
前端——使用base64编码在页面嵌入图片

因为页面中插入一个图片都要写明图片的路径——相对路径或者绝对路径。而除了具体的网站图片的图片地址,如果是在自己电脑文件夹里的图片,当我们的HTML文件在别人电脑上打开的时候图片则由于...

被毒打的程序猿
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部