Shark的在Eclipse环境下的联合调试跟踪

类别:Java 点击:0 评论:0 推荐:

Shark的在Eclipse环境下的联合调试跟踪

 

胡长城(银狐999)

http://www.wfchina.org

http://javafox.blogdriver.com

http://blog.csdn.net/james999

 

       Shark的modules分的很清晰,但是代码量和包结构,是很复杂的,而且屏蔽了大量的实现类,这更增加了阅读程序的难度······
       一般意思上说,阅读代码最好的方式,是“调试与跟踪”。所以,学习shark,最好的方式,也是跟踪其代码的运行逻辑。

       但是,一般要启动Shark,就必须启动shark的tns,corba server(SharkCORBAServer),admin(SharkAdmin)。这种情况,很容易让人感觉,调试或者跟踪程序是件很麻烦的事情,其实不然。

 

       建议大家从shark cvs中获取::pserver:[email protected]:/cvsroot/shark

 

       然后利用Eclipse加载shark的工程,是非常简单的事情(哈哈,这个不用说了),稍微补充以下,就是从cvs上拽的工程,不包含hibernate.jar。但是shark编译的需要。

配置SharkAdmin 调试环境:

       这个实际上没什么说的,SharkAdmin仅仅是个Application。

配置SharkCORBAServer的调试环境

       这个当然要参考一下run.bat或run.sh文件。查阅一下其调用应用程序所需要的Environment及classpath。可以看见其需要“PATH=lib\contrib\ext;%PATH%”。
       在lib/ext目录下,存在NTEventLogAppender.dll 等几个dll文件,需要加入Path环境中。
       知道这个需求,就很简单了。只需在Eclipse的Debug中将Environment 的“Path”引入(默认是没有的),并且编辑以下,将NTEventLogAppender.dll等文件的位置引入即可。

还剩一个TNS
       这个最简单的了,也不许要调试跟踪,只是提供一个命名服务。从shark网站下载shark2.7.0 的安装文件(当然,也可以通过cvs的代码打包,方式请参考http://shark.objectweb.org/doc/sfs/sharkfromscratch1.html)。不过通过cvs直接打包后出现一些错误,于是我利用shark提供的安装文件直接使用。
       安装后,直接运行bin/tns.bat即可。然后再eclipse环境中启动 shark server调试,然后再启动shark admin 调试。

       那么现在,设置你所希望的断点吧······ 跟踪调试:F6,F5,F7···

获取更加详细的信息
       这样配置的调制环境是不支持log信息输出的。Shark采用common-logging,这个就非常容易解决。将commons-logging.properties 和log4j.properties 引入即可。

推荐设置断点的类
       有两个非常值得研究的类:

    org.enhydra.shark.WfActivityImpl

org.enhydra.shark.WfProcessImpl
    这两个类,是“Activity”和“Process”服务期端(注意,是server端)的核心类。必然针对流程、活动的操作,都会影响到这两个类。所以,跟踪这两个类,就会明白很多。

本文地址:http://com.8s8s.com/it/it15064.htm