看过许多远程调试的例子,大多数都是针对tomcat或者jboss服务器的,很少能搜索到weblogic服务器的远程调试例子和文章,前些天在项目开发的时候尝试了一下,感觉十分得不错,拿出来跟大家分享一下,不过我要多罗嗦几句。
远程调试的好处:我们现在开发的模式大多是本机用eclipse集成source管理环境,集成ant的编译环境,用weblogic插件集成运行环境,基本上一个eclipse又当爹又当妈的,这样的好处就是开发环境配置集中,普通的程序员只要按步骤做就可以了,开发步骤简单,对整个项目是一件好事。那么站在普通的程序员角度?什么也没有学到,就是在模仿而已,如果本机的硬件配置如果很低的话,意味着开发效率的降低,同时一点开发乐趣都没有,就是在实现业务而已,是很难了解工具本身的特点。远程调试的好处就是把集中的配置分散开来,让资源分配在不同的机器上,降低本机资源的使用。换一句话,就是将运行环境和开发环境的彻底的分离出来,对于那些实时对应和保守的程序员来说,简直就是一个福音,用户环境一旦出现什么bug的话,你个人可以在最短的时间内再现和调试,而不用运行本机的测试环境。
远程调试的准备知识:使用Java 平台调试架构,Java Platform Debugger Architecture,简称JPDA,具体的可以参照API文档里面的Tool Support里面的Java Platform Debugger Architecture (JPDA)(我的jdk文档是1.42的,如果是别的版本,你搜索一下jpda就可以找到相关的资料)。换一句话,我们借助于这个平台来debug应用程序,其实我们也会看到eclipse里面也有debug的,那么它们是不是一回事呢?我倒是搜索了一下,基本上eclpse的调试就是使用和扩充这个工具平台的,只不过远程调试需要我们自己手动配置而已,而你在本地调试的时候,那些配置都是插件帮你完成的,你本人就是一个使用者而已,所以没有关心的那么多。
具体的实现步骤:配置服务器的启动参数,如果熟悉weblogic的话,会发现weblogic更多是用java实现的。对于我们来说,如果是windows用户的话,你只需要修改domain
里面的startWebLogic.cmd批处理文件,你在这个文件里设置一个系统变量,
白话就是你添加一行set JAVA_DEBUG=-Xdebug -Xnoagent -Xrunjdwp: transport=dt_socket,address=4000,server=y,suspend=n。这样是不够的,你还需要将这句话添加到%JAVA_HOME%\bin\java %JAVA_VM% %MEM_ARGS% %JAVA_OPTIONS% -Dweblogic.Name=%SERVER_NAME% -Dweblogic.ProductionModeEnabled=%PRODUCTION_MODE% -Djava.security.policy="%WL_HOME%\server\lib\weblogic.policy" weblogic.Server里
修改后的结果%JAVA_HOME%\bin\java %JAVA_VM% %JAVA_DEBUG% %MEM_ARGS% %JAVA_OPTIONS%weblogic.Name=%SERVER_NAME% -Dweblogic.ProductionModeEnabled=%PRODUCTION_MODE% -Djava.security.policy="%WL_HOME%\server\lib\weblogic.policy" weblogic.Server
这样做的目的就是让你启动weblogic的同时,把JPDA也启动起来,至于你的weblogic的实际启动参数是不是和我一样,我就不知道了,反正这么写的目的就是让JPDA的参数也加载到你的启动参数列表里,启动weblogic的同时也将JPDA启动起来,具体的修改还是根据自己的实际情况来定,但是目的是相同的。
配置客户端:这边使用的客户端工具自然就是eclipse了,原先你在本地的工程配置保持不变,换一句话说你也必须把自己的工程import到你的eclipse,使用和操作上和本地的没有任何的变化。但是你需要建立一个remote java Application,让后配置一下就可以了(可惜我不会在jr里上穿图片,否则抓一下图,一看就明白了)。简单地说,在你的debug里有java application,java applet,junit等等,当然那里也有remote java Application,你新建一个就可以了,简单配置一下远程主机的地址和监听端口(就是你在服务器配置过程指定的4000),选择一下你的工程,然后给这个remote java Application起个名字之类。
需要注意的地方:在你debug的时候,一定要保证你本地的source和服务器上运行的环境上的跑的class一致,换一句话说一定要及时更新source,否则debug的结果就是莫名其妙的。还有你把自己的source编译后的jar包或者文件夹放到服务器上,一定要每次都发布一遍,如果你偶尔忘记一次,那么虽然你服务器上跑的class和本地的source一致,由于你没有发布,那么debug的结果,也不一致了,所以保持一致性是两重的含义。
小结
其实配置远程debug并不困难,基本的原理很简单,服务器端在启动的服务器的同时,也把JPDA明确的启动起来,分配一个端口号,那么你在客户端只要连接上JPDA服务(sun称为工具平台,我个人称为服务)便能测试了,给我的感觉更像是一个socket编程实现的服务。至于其他的服务器的远程调试?原理一定是一样的,只不过你需要根据它们提供的文档,相应的修改远程调试的参数而已。同时声明一下,我个人的水平也是很一般,在认识和经验上也有一定的欠缺,如果本贴子有什么不妥和不对的地方,请大家指出和共同学习。
分享到:
- 2006-11-30 11:32
- 浏览 2131
- 评论(1)
- 论坛回复 / 浏览 (1 / 4914)
- 查看更多
相关推荐
Weblogic12c(12.1.3)安装和eclipse下配置weblogic并发布项目
JavaEE5实用教程——基于WebLogic和Eclipse程序源代码
Weblogic tomcat在eclipse下如果配置调试,打印执行sql语句,对新手有一定帮助。
eclipse的weblogic插件,将其解压,放入plugins文件目录下,重启即可
weblogic---Eclipse插件,用在Eclipse上的插件,配置完成后便于用其作为开发的使用的服务器
weblogic 10 ejb3 入门教程 + 调试通过的源代码 通过网上的教程,调试通过了weblogic 下的 ejb 3, 备份专用
weblogic 8.1 plugin for Eclipse 3.4 weblogic 8.1 plugin for Eclipse 3.4 weblogic 8.1 plugin for Eclipse 3.4
weblogic数据源配置 weblogic数据源配置 weblogic数据源配置
本人总结的在eclipse中搭建weblogic服务器
Weblogic 数据源配置,Weblogic 数据源配置,Weblogic 数据源配置,Weblogic 数据源配置,Weblogic 数据源配置,Weblogic 数据源配置,Weblogic 数据源配置,Weblogic 数据源配置,Weblogic 数据源配置,Weblogic ...
NULL 博文链接:https://caihorse.iteye.com/blog/669875
配置WebLogic-Eclipse插件 配置WebLogic-Eclipse插件
通过一个图片很详细说明了怎么样用eclipse+weblogic
图解Eclipse下Weblogic的配置
如何在WebLogic、Tomcat中配置远程调试,以及在eclipse中如何设置,解决生产环境没有代码环境不好定位BUG的解决方案
NULL 博文链接:https://zhongqiangzhou.iteye.com/blog/1210398
spring获取weblogic jndi数据源的两种方式,一种本地weblogic server获取,无需用户名、密码、IP和端口等;另一种为从其他weblogic server获取,则必须申明用户名、密码、IP和端口
Eclipse下Weblogic配置详解。详细的配置,非常不错的资料。
使用eclipse通过weblogic开发简单的ejb应用(weblogic 10.x & ejb3.x)
Eclipse2.1+weblogic8.1+mysql开发工具安装步骤