Matrix - 与 Java 共舞 - 使用工作流引擎wfmopen中的陷井

来源:百度文库 编辑:神马文学网 时间:2024/04/30 02:33:46
使用工作流引擎wfmopen中的陷井
hoogw 发表于2004-09-03 作者:胡国文 评价:0/0 评论数:0 点击数:1359 [收藏]

摘要:
转载:转载请保留本信息,本文来自http://www.matrix.org.cn/resource/article/1/1022.html
运行WFMOPEN中的陷井
wfmopen 是open-source的以J2EE 为基础的工作流引擎,是被Workflow Management Coalition (WfMC) and the Object Management Group (OMG)提出来的项目.
有兴趣的朋友可在:
https://sourceforge.net/forum/forum.php?thread_id=1138720&forum_id=259990
下载.
按照WFMOPEN的用户手册上的说明, 短短的几句话,似乎可以在二十来分钟就让WFMOPEN运行起来.但是实际上,我从昨天下午到今天上午9:20,一共用了6个小时才把WFMOPEN的例子运行起来.整个过程中有很多陷井.
PITFALL ONE
准备数据库的时候要注意,如果你用JBOSS自带的HYPERSONIC数据库的话,要知道HYPERSONIC有两种连接方式,一是通过TCP,另外一种是IN-MEMORY.
在TCP方式下, 启动JBOSS以后才能执行初始化数据库的操作.而且在JDBC.PROPERTY ($DIST\wfmopen-1.1-bin\lib\wfdemo)要使用的是
database=jdbc:hsqldb:hsql://localhost:1701(不需要改动)
因为JBOSS 3.2.0以后默认的是IN-MEMORY方式,所以要用TCP方式,必须要告诉JBOSS,我要用TCP方式,具体方法是:
UNZIP JBOSS 以后
1. 在$JBOSS_HOME/server/default/deploy/hsqldb-ds.xml中,
UNCOMMENT
jdbc:hsqldb:hsql://localhost:1701
并且把其它的-tags都给COMMENT掉.
2. 在$JBOSS_HOME/server/default/conf/jboss-service.xml
"Monitoring and Management"-statements 后面加一句:
name="jboss.jdbc:name=HypersonicDatabase"/>
这是根据JBOSS 的要求来加的,在JBOSS的文档里有说这个.
完成了这两步以后再按照用户手册上说的去做.
在IN-MEMORY连接方式下,数据不会写到硬盘上,JBOSS一停,数据库中的数据就会消失,所以每次启动JBOSS前或后都要执行一次初始化数据库的操作,由于是IN MEMORY可以在JBOSS 启动前初始化数据库. 但是要注意的一点是: 在JDBC.PROPERTY ($DIST\wfmopen-1.1-bin\lib\wfdemo)要使用的是
database=jdbc:hsqldb:hsql:.(要增加的)
NOTE: 我用的是TCP,我不能保证IN-MEMORY也可行.
PITFALL TWO
为什么不能用MYSQL, 因为WFMOPEN 要求用支持DISTRIBUTE TRANSACTION的数据库,MYSQL显然是不支持DISTRIBUTE TRANSACTION的. 当然你可以在MYSQL.COM中找到MAXDB来用.
PITFALL THREE
JBOSS 用哪个版本? 虽然用户手册上说的是JBOSS3.2.5版本可以用,但是周志军发现JBOSS3.2.5版上关于MQ SERVICE(JMS) 中有漏洞, WFMOPEN 明确用到JMS,所以JBOSS3.2.5版很可能引起WFMOPEN不能运行,表现就是当用”ML” LOGIN的时候无法LOGIN, 同时JBOSS上不断抛出错误信息.为了安全,请使用JBOSS3.2.3版,我用过了,没问题.
PTIFALL FOUR
在把$DIST/lib/wfdemo/login-config.xml.insert添加到
$JBOSS_HOME/server/default/conf/login-config.xml 的时候要注意,要在最后一个tag前添加那些内容,手册中写的是在最后,容易产生误会.如果LOGIN 的时候用”ML”无法LOGIN,那么错误可能在两个地方:一是login-config.xml文件没设置好,另一个就是数据库没有正确初始化.应仔细在这两个地方找错误.
HOW TO GET WFMOPEN SAMPLE UP
I follow user manual C.2 Sample application,6 hours to get up wfmopen 1.1 sample application , you got problem using “ML” to login? Just follow these steps:
WARNING:
First, I use Jboss 3.2.5 with wfmopen 1.2. I can’t login using “ML”, meanwhile, Jboss throw lots of exceptions continuely. I found that Jboss 3.2.5 itself has a bug when using MQ serviece(JMS). Wfmopen need MQ service support, so this bug could cause the problem. Otherwise, unproperly set login-config.xml file and uninitial database could also cause the problem as Michael said previously.
So Jboss 3.2.5 don’t work, try Jboss 3.2.3.
Step 1: unzip Jboss 3.2.3
Step 2: uncomment
jdbc:hsqldb:hsql://localhost:1701
in $JBOSS_HOME/server/default/deploy/hsqldb-ds.xml
and comment all other -tags
Step 3:add name="jboss.jdbc:name=HypersonicDatabase"/>
to $JBOSS_HOME/server/default/conf/jboss-service.xml
Step 4: prepare the database as user manual said.
Step 5: make sure you insert the fragment $DIST/lib/wfdemo/login-config.xml.insert before the last tag of $JBOSS_HOME/server/default/conf/login-config.xml( I got wrong when I simply append everything after
$JBOSS_HOME/server/default/conf/login-config.xml )
Step 6: try wfmopen 1.1 in case of wfmopen 1.2 don’t work.
_xyz