由Java应用远程调试(Remote Java Application Debugging)想到的

来源:互联网 发布:pkpm脚手架计算软件 编辑:程序博客网 时间:2024/06/12 14:38

        以前开发J2EE应用都是使用IBM Rational系列开发工具,尽管一直觉得IBM的开发工具用户友好性不够,而且经常要安装个2、3次才能搞掂,下载个补丁没准要若干G。可相对于纯Eclipse,它们还是有带来很多便利,比如可以很方便地调试JSP、Servlet、portlet、EJB 或者SCA Component。当然以Debug模式在开发工具中启动WAS或WPS那是相当的慢。

      用惯了IBM的开发工具,以至于我认为如果不针对不同的Server开发一些插件,Eclipse是不支持远程调试的,这种想法如此强烈,以至于我从来没有去google一下相关内容,更没有去看看Eclipse Help中Remote Debugging相关章节。

      近几个月一直在开发一个比较重要的项目,我的工作主要集中在前台,后台的引擎原本作为一个单机应用程序来运行,但最近将它作为一个MBean发布在Jboss上,如何调试? 我想当然地使用了最原始的手段:log+System.out,直到老大告诉我该如何调试为止。我立刻意识到在这个问题我有多么愚蠢,立刻google相关内容,发现早在2005年这个问题就已经很好的解决了。点击率颇高的文章来自如下链接:配置Eclipse进行远程调试,这是一篇译文,原文来自Configuring Eclipse for Remote Debugging。Remote Debugging with Eclipse 写的也不错。两篇文章的作者所使用的都是Eclipse3.0.0,说明Eclipse最晚在2004年就提供了Remote Debugging的功能,进一步搜索发现早在SUN发布JDK1.2时就已经将Java Platform Debugger Architecture (JPDA)包含其中,从那时起的IDE厂家就开始支持Remove Debugging。

       关于Remote debugging的技术问题我就不再多说,但总觉得如此重要的功能这么久都不知道有些说不过去,说明自己学习方法有问题。忽然我冒出个想法:是不是只有我忽略了这个重要功能?抑或其他人也犯了同样的错误?于是乎问了问周围的朋友,发现和我一样的还真不少。如此一来,问题变得有趣起来,可能每个人在这个问题上都有自己的原因,但肯定有一个共同的原因:很多人在学习过程中都犯一个通病——那就是不求甚解。我们可能在业界混了很多年,自认为对某些技术很精通,其实真要较真,我们掌握得还远远不够。如果我能认真看看JPDA相关介绍,或者仔细读读Eclipse  Help,或者深入领会Jboss启动参数的含义,那么我都应该在若干年前就掌握这个基本功能。

       作为农民工,我们自认为对工具袋中的锤子、扳手很了解,但实际情况却是我们对工具的掌握还很有限。我们可能想当然地认为只要我们对牛足够了解,我们就可以成为一个优秀的庖厨,殊不知,人刀合一才是成为一名顶级高手的首要条件。