在log.txt中:
starting.....(在WorkstationMainCtrl.java 的62行开始) /pbs/kernal/ide/html/xml D:\\workspace\\PBS
send to = 190.2.2.21 (从SynNode.java的140行) port=21356
socket = Socket[addr=/190.2.2.21,port=21356,localport=3341] send:: pbs.util.version.SyncRequest|0|||0|-|0|227|2||
return:::
pbs.util.version.SyncResponse|0||pbs.util.version.SyncResponseHandler|0|227||||0|1| closing....(SynNode.java的216行结束) Sync finish(SyncClient类的96行)
Server start at ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=21359](在SyncNode.java的92行)
waiting accept...
D:\\workspace\\PBS/pbs/report/
[Lpbs.kernal.base.PbsObject;@140fee [Lpbs.kernal.base.PbsObject;@e8a0cd
<<2010/06/25 02:50:41 >> read properties...(在ConfigModify.java的266行) <<2010/06/25 02:50:56 >> encrypt_flag==false>(从wsTxMgr.java的179行) <<2010/06/25 02:50:56 >> host_addr=t3://190.2.2.46:7005 [Lpbs.kernal.base.PbsObject;@14a0fe1 ()
<<2010/06/25 02:51:25 >> ftpCompressed=true从wsTxMgr.java的223行 <<2010/06/25 02:51:25 >> FTPPORT=9999
这些是同步更新PBS的debug记录。 暂时放下,主要是socket编程。
在pbs中,java的主入口类是WorkstationMainCtrl,在PowerBranchTeller31.bat中可以看到以下内容:
set PBSDIR=c:\\pbsRun2009(主目录)
set JAVA_HOME=%PBSDIR%\\jdk131(java的jdk目录)
set LIBPATH=%PBSDIR%\\lib(用到的一些jar包,包括weblogic.jar,xalan.jar包) set XMLDIR=/pbs/kernal/ide/html/xml(xml文件存放目录) set DLLDIR=C:\\WINDOWS\\System32 set TESTMODE=false(debug模式) set start=start set exec=java
@rem cd %LIBPATH% @rem set LIBPATH=. set ()classpath=%LIBPATH%\\pe.jar;%LIBPATH%\\cc.jar;%LIBPATH%\\am.jar;%LIBPATH%\\fd.jar;%LIBPATH
%\\ci.jar;%LIBPATH%\\fe.jar;%LIBPATH%\\dp.jar;%LIBPATH%\\iln.jar;%LIBPATH%\\bs.jar;%LIBPATH%\\af.jar;%LIBPATH%\\be.jar;%LIBPATH%\\de.jar;%LIBPATH%\\cr.jar;%LIBPATH%\\gl.jar;%LIBPATH%\\st.jar;%LIBPATH%\\re.jar;%LIBPATH%\\se.jar;%LIBPATH%\\mc.jar;%LIBPATH%\\ln.jar;%LIBPATH%\\nln.jar;%LIBPATH%\\sm.jar;%LIBPATH%\\spc.jar;%LIBPATH%\\cv.jar;%LIBPATH%\\dl.jar;%LIBPATH%\\fw.jar (设置classpath路径,主要是交易类) set
classpath=%LIBPATH%\\dcs.jar;%LIBPATH%\\baseclient.jar;%LIBPATH%\\config.jar;%LIBPATH%\%ui.jar;%LIBPATH%\%uibean.jar;%LIBPATH%\\client.jar;%LIBPATH%\\BSSEJB.jar;%LIBPATH%\\db.jar;%LIBPATH%\\bss.jar;%LIBPATH%\\field.jar;%LIBPATH%\\appl.jar;%LIBPATH%\\file.jar;%LIBPATH%\\pbsxml.jar;%LIBPATH%\\form.jar;%LIBPATH%\\net.jar;%LIBPATH%\\msg.jar;%LIBPATH%\\comm.jar;%LIBPATH%\\parse.jar;%LIBPATH%\\channel.jar;%LIBPATH%\\channel_sub.jar;%LIBPATH%\\nfhsync.jar;%LIBPATH%\\hsa.jar;%LIBPATH%\\applcomm.jar;%LIBPATH%\\pub.jar;%LIBPATH%\\report.jar;%classpath% (设置classpath路径,主要是服务类,工具类,窗口部件类,同步类等等)
%start%%JAVA_HOME%\\bin\\%exec% -mx128M -classpath %classpath% -Dpbsdebug=true -Dpbsdir=%PBSDIR% -Djava.library.path=%DLLDIR% -Didexmldir=%XMLDIR% -Dfile.encoding=GBK -DTESTMODE=%TESTMODE% -Duser.language=zh -Duser.region=CN pbs.teller.appl.WorkstationMainCtrl(入口类) 在 WorkstationMainCtrl类中151行,
SplashWindow sw = SplashWindow.getInstance(); sw.prepareSplash(); sw.startSplash();
准备窗口,在SplanshWindow中可以看到设置窗口主要的Main.jpg图片 JLabel l = new JLabel(new
ImageIcon(SplashWindow.class.getClassLoader().getResource(\/appl/Main.jpg\)));
SyncClient.main(new String[0]); 同步更新程序代码。(有空再研究)。
WsTxMgr.initEnv(sw);
在PbsToolBox.deleteAllFile(System.getProperty(\, \) + \);
删除其目录下的文件。
sw.setText(\装载打印格式交易定义...\);
WsTxConfig.loadWorkstationTransaction();
调用WsTxConfig中的以下方法:
public static void loadWorkstationTransaction() {
WsTxObjectPool.loadWorkstationTransaction(); }
再调用WsTxObjectPool.loadWorkstationTransaction()的方法。
通过其方法加载文件
String fName = fPath + \Transaction.pol\; String fName2 = fPath + \PrintForm.pol\; /** 交易定义缓冲 */
private static PbsObjectPool txPool;
在Transaction.pol传入的值有很多,传给到了txPool中,下面给出的是它其中一个键值对。
/** 打印格式定义 */
private static PbsObjectPool prtFormPool;
在PrintForm.pol传入的值有很多,传给到了prtFormPool中,下面给出的是它其中一个键值对。
HashMap hashMap = WsTxConfig.getQuickKey();
FieldBuffer fieldbuffer = ResourceReader.getValueFromResource(QUICKKEYXML, \); for(int i = 0; i <= fieldbuffer.getMaxOccurce(); i++) {
String s = fieldbuffer.getStringValue(\, i); String s1 = fieldbuffer.getStringValue(\, i); quickKeyMap.put(s, s1);
在这里读取pbs/teller/xml/QuickKey.xml文件里面的内容。作用是快捷键设置 setQuickKeyMap(hashMap);
在
try {
bsaMgr = new BSAccessManager(bsUrl, wsId, 1);
String bsUrl = PbsToolBox.getBsUrl();
中,就会调用后台weblogic的EJB,JMS等等服务。(下面是weblogic的JNDITree里面绑定的EJB服务类)
其中就会调用在BSAccessManager 中调用
bsa = new BranchServiceAccess(); 生产服务接口类。
再接着>BranchServiceAccess>
private static void initilize() {
bsUrl = PbsToolBox.getBsUrl(); accessTable = new Hashtable();
BranchEJBServiceAccess branchejbserviceaccess = new BranchEJBServiceAccess();
branchejbserviceaccess.initBsa(bsUrl);
accessTable.put(branchejbserviceaccess.getBsaName(), branchejbserviceaccess); BranchJMSServiceAccess branchjmsserviceaccess = new BranchJMSServiceAccess();
branchjmsserviceaccess.initBsa(bsUrl);
accessTable.put(branchjmsserviceaccess.getBsaName(), branchjmsserviceaccess);

