网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.J2SE简介.
.使用Socket发送电子邮件.
.java硬件.
.getUTCMonth 方法.
.在JBoss下开发、部署EJB.
.JBoss 4.0 简化了中间.
.java缺点.
.深入分析J2ME平台MIDP低级事件处.
.Java无用论.
.轻松玩转Java配置的Classpath.
.Hacking swing: 一个J.
.Ant实践.
.如何设置classpath.
.如何才算掌握Java(J2SE篇).
.JAVA - IO包的学习引导文章.
.循速渐进学用Session Bean(四).
.JavaMail邮件主题乱码的解决方法.
.Java调试教程--使用Jikes进行调试.
.用 Spring MVC 轻松进行应用程序.
.用Java程序生成文本的捷径.

Eclipse远程调试Weblogic运行的源代码

发表日期:2008-1-5


  看过许多远程调试的例子,大多数都是针对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编程实现的服务。至于其他的服务器的远程调试?原理一定是一样的,只不过你需要根据它们提供的文档,相应的修改远程调试的参数而已。同时声明一下,我个人的水平也是很一般,在熟悉和经验上也有一定的欠缺,假如本贴子有什么不妥和不对的地方,请大家指出和共同学习。


上一篇:开源技术之Tomcat数据源配置总结 人气:904
下一篇:如何打造实用网站 人气:449
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐