服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

使用工作流引擎wfmopen中的陷井


  按照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
  <connection-url>jdbc:hsqldb:hsql://localhost:1701</connection-url>
  并且把其它的<connection-url>-tags都给comment掉.
   
  2. 在$jboss_home/server/default/conf/jboss-service.xml"monitoring and management"-statements 后面加一句:
  <mbean code="org.jboss.jdbc.hypersonicdatabase" 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 的时候要注意,要在最后一个</policy>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
  <connection-url>jdbc:hsqldb:hsql://localhost:1701</connection-url>in $jboss_home/server/default/deploy/hsqldb-ds.xml and comment all other <connection-url>-tags
  
  step 3:add <mbean code="org.jboss.jdbc.hypersonicdatabase" 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 </policy> 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.

扫描关注微信公众号