Eclipse 远程调试 WebSphere Application Server (WAS)

我们用 Eclipse 开发 Web 项目时,多会用某个插件(如 MyEclipse) 来对 Tomcat 中的应用进行单步调试。而要调试 WAS 下的应用,MyEclipse 也是可以的,但在 MyEclipse 中启动 WAS 比较慢,且需要在本地安装一个 WAS。再有便捷点的方法是用 WSAD (Websphere Studio Application Developer) 或它的升级版 RAD (Rational Application Developer),它们内置了对 WAS 很好的支持,不过也需要本机安装了 WAS,WSAD/RAD 肥大的身躯自是不必说。若要让 WSAD/RAD 进行远程调试,似乎还得在Server 上安装个 IBM Agent Controller。

  实际上 WAS 就支持远程调试的设置,打开它,你只需要用 Eclipse Debug 中的 Remote Java Application 功能连接到服务器上相应端口即行。设置很简单,这样的办法你甚至可以在闲时偷偷的调试一下生产环境的 WAS 应用以验证测试环境难以/无法重现的问题。具体做法如下(WAS 5.x 和 6.x 下的操作基本相同):

  一:配置 WAS,打开调试服务
     
进到 WAS(或ND) 的管理控制台,在服务器->应用程序服务器中,点击要启用调试服务的应用服务器,然后进入调试服务,勾选上启动(指定当服务器启动时服务器是否将尝试启动指定的服务。)。JVM 调试端口默认为 7777,注意该端口不能有冲突(如有多个应服务器要启用调试服务时,需要指定别的端口)。其他选项默认,或根据实际来设定。
   确定保存后重启应用服务器,WAS Base 版需要回到操作系统下重启,如果是在 ND 管理控制台下,可直接在页面中重启应用服务器。

  二:配置 Eclipse,使用远程调试
  Eclipse 的菜单 Run -> Open Debug Dialog 窗口中,右击 Remote Java Application->New,在右方的Conect 标签页中,选择你要调试的 Project(即发布到 WAS 下启用了调试服务的,在你的 Eclipse 中存在的项目),Host 填上 WAS 服务器的 IP,Port 就是前面的 JVM 调试端口。其他两个标签页 Source/Common 可留意下。

  点击 Debug 按钮,这时候 Eclipse 即处理于侦听  WAS 服务器的 JVM 调试端口的状态。
  
  三:打上断点,调试应用
  
在你的 Eclipse 中的项目(注意,该项目已部署到 WAS 上的) 要调试的代码行中打上断点,然后可以在网页上浏览 WAS 上的该应用。当执行到所在断点的代码行时,Eclipse 就会停在该行上,让你尽情的 F5/F6 的跳,像平时那样 Watch/Inspect/Display表达式或变量。

  其他缺点就是:
  1)观察不到控制台的输出,还得看 WAS 的 SystemOut.log 文件或日志文件。 
  2)JSP 文件无法调试,因为定位不到原码,并且这种方式也不足以聪明。
  3)代码更新后,需手工把类文件或 JSP 文件拷到 WAS 的相应目录下。
  4)启动了调试服务后,严重影响功能,通过鼠标点击就能感觉到,所以正式系统上完事后赶紧关了该功能。

时间: 2024-08-29 04:12:37

Eclipse 远程调试 WebSphere Application Server (WAS)的相关文章

WebSphere Application Server Performance Tuning Toolkit

WebSphere? Application Server Performance Tuning Toolkit 是一款基于 Eclipse 的智能工具,旨在帮助用户通过使用数据收集.数据分析和统计数据推断技术来调优 WebSphere Application Server 的性能.其目的是帮助用户查找瓶颈,并适当调优应用程序. 背景知识 随着基于 Java EE 的企业级多层架构应用程序的大范围部署,出现得越来越多的性能问题,而且难以诊断.多层架构使得性能问题难以定位,而且要花费更多的时间和精

Eclipse远程调试(远程服务器端监听)

前提:远程服务器上运行的WEB项目class对应的源码与本地项目中必须保持一致,也就是远程tomcat部署的项目就是本机项目打包过去的,而本机项目没有发生变动. 远程服务器端 服务器端配置eclipse调试器监听端口,有两种方式,任选其一 第一种方式: 环境变量 export JPDA_ADDRESS=9999 启动tomcat 使用sh catalina.sh jpda start启动 注意:不要用startup.sh 通过这条命令启动tomcat,会监听JPDA_ADDRESS设置的端口,等

Eclipse远程调试Tomcat

最近,一直在研究Tomcat的工作内幕,主要的方法就是参考<How Tomcat Works> 这本书和Tomcat 5.5.26的源代码. Tomcat的代码结构还是比较清晰的,注释也比较全.但是代码毕竟是静态的,难以彻底弄清类与类之间的协作关系,以及运行时对象的交互关系. 如果能对Tomcat的启动.处理请求和停止的过程进行断点调试,看清Tomcat的每一步行踪,那么就能解决上面的问题了. 于是,又一个问题出来了:如何使用Eclipse远程调试Tomcat ? 上网查了一些资料,相关的文章

使用Eclipse远程调试及原理

今天定位Linux Server端的Java应用程序的问题,使用了 Eclipse 远程调试 Java 应用程序,这恐怕是定位Server端最常见也是最根本的方法,居然至少有两位有好几年开发经验的同事都不知道这个方法,我也感觉十分诧异. 本文在介绍使用Eclipse远程调试Java应用程序之外,着重解析了远程调试的原理. JVM原理 众所周知,Java由于引入了虚拟机JVM,拥有了很好的跨平台和安全性,.java文件由Javac编译成.class文件也叫字节码文件,字节码文件由JVM执行,并由翻

Eclipse远程调试应用程序

第一步,在应用程序的配置文件run.xml中加入下面的配置项,启动应用程序: <target name="run" depends="checkBuilderFailedLogExist">  <!--ant antfile="../DBSchema/main.xml" target="run-all" /-->   <java classname="com.raisecom.nms.c

Linux下使用Eclipse 远程调试

1 开启端口 修改/apache-tomcat-7.0.40/bin/catalina.sh 在合适的位置(请自行判断,只要有JAVA_OPTS的设定前后即可)插入下面的设定:UI_DEBUG="-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8899"CATALINA_OPTS="$CATALINA_OPTS $UI

eclipse 远程调试hadoop代码

zxxJPDA 简介 Sun Microsystem 的 Java Platform Debugger Architecture (JPDA) 技术是一个多层架构,使您能够在各种环境中轻松调试 Java 应用程序.JPDA 由两个接口(分别是 JVM Tool Interface 和 JDI).一个协议(Java Debug Wire Protocol)和两个用于合并它们的软件组件(后端和前端)组成.它的设计目的是让调试人员在任何环境中都可以进行调试. 更详细的介绍,您可以参考使用 Eclips

CloudStack 4.3 源码部署+eclipse远程调试

CloudStack 4.3 源码部署 系统环境 vmware workstation 下创建一个虚拟机 装有Centos6.5  64bit 安装软件 1.yum install git mysql mysql-server mkisofs gcc python MySQL-python openssh-clients wget 2.下载maven 并解压到 /root/maven 目录 3.下载ant 并解压到 /root/ant 目录 4.下载sun jdk 7 并解压到 /root/jd

在Intellij IDEA里面配置Tomcat和Websphere Application Server

1, Tomcat 在Edit Configuration里面选择Tomcat Server --> Local, 配置如下 添加Artifact带有exploded的话就可以实时更新war包里面的类和配置文件,定义应用上下文/XXXX 添加jvm变量 2,Websphere Application Server 在Edit Configuration里面选择Websphere Server --> Local, 选择Profile 配置如下: 因为WAS只支持EAR包,EAR包会把整个项目的