Shark Workflow是著名的开源工作流引擎,遵循Wfmc标准,是学习工作流产品开发和使用的很好示例。但是由于其为开源项目,没有很好的文档和技术支持,对初学者来说不知如何下手。Shark提供了一个web应用程序示例jspClient,可以作为学习的起点。但是我经过试验发现在tomcat5和 tomcat6上按它的要求部署并不能成功运行。经过仔细研究和查找资料,发现主要是有些配置文件未及时更新导致。现把我总结的在tomcat6上部署此程序的过程发布,希望能给其他初学者一些帮助。
1.获得jspClient示例文件
最简单的方法,直接到http://forge.objectweb.org/projects/shark/下载jsp client示例文件。或者下载Shark最新版本,或者下载CVS源码自己编译并安装,在后两种情况下会在Shark的最终安装目录下找到一个 JSPClient目录,里面有一个sharkworklisthandler.war文件即是该示例文件。
2.部署jspClient
解压缩sharkworklisthandler.war文件到tomcat(我使用的是tomcat-6.0.14)的webapps目录,命名为 sharkworklisthandler,拷贝sharkworklisthandler/WEB-INF/lib目录下hsqldb.jar文件放到 tomcat的lib目录下。
3.修改相关配置文件
修改sharkworklisthandler/META-INF/context.xml文件,原文件是针对tomcat5的配置,需要做相应修改以适应tomcat6.修改成如下内容:
<?xml version='1.0' encoding='utf-8' ?>
<Context>
<Resource name="sharkdb" auth="Container" type="javax.sql.DataSource" maxWait="5000" maxActive="300"
maxIdle="2" username="sa" password="" driverClassName="org.hsqldb.jdbcDriver"
url="jdbc:hsqldb:file:C:/Java/Tomcat-6.0.14/webapps/sharkworklisthandler/db/hsql/hsql" />
<Transaction factory="org.objectweb.jotm.UserTransactionFactory" jotm.timeout="180" />
</Context>
其中的url中的实际路径根据实际情况为sharkworklisthandler/db/hsql的实际地址后在加一个/hsql。如果不行将其中的“/”换成“/”试试。
修改sharkworklisthandler/WEB-INF/web.xml文件添加数据源信息:
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name> shark-test </display-name>
<description> Shark sample JSP application. </description>
<resource-ref>
<description> Datasource Connecton </description>
<res-ref-name> sharkdb </res-ref-name>
<res-type> javax.sql.DataSource </res-type>
<res-auth> Container </res-auth>
</resource-ref>
</web-app>
修改sharkworklisthandler/conf/SharkJSPClient.conf文件使jta配置符合tomcat6:
XaUserTransactionLookupName=java:comp/UserTransaction
DatabaseManager.defaults.XATransactionManagerLookupName=java:comp/UserTransaction
DatabaseManager.DB.sharkdb.Connection.DataSourceName="jndi:sharkdb"
SharkTxSynchronizationFactory.XATransactionManagerLookupName=java:comp/UserTransaction
4.启动tomcat6,在浏览器中输入http://localhost:8080/sharkworklisthandler即可。
附:使用Oracle数据库的修改方法:
a.拷贝最新版本oracle10.1.0.5.0的jdbc驱动ojdbc14.jar(可到oracle官方网站下载,oracle9i自带的驱动有问题,会导致倒入流程定义数据时候出错)放到tomcat的lib目录下。
b.修改sharkworklisthandler/META-INF/context.xml文件:
<?xml version='1.0' encoding='utf-8' ?>
<Context>
<Resource name="sharkdb" auth="Container" type="javax.sql.DataSource" maxWait="5000" maxActive="300"
maxIdle="2" username="shark" password="shark" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@localhost:1521:develop" />
<Transaction factory="org.objectweb.jotm.UserTransactionFactory" jotm.timeout="180" />
</Context>
c.修改sharkworklisthandler/conf/Shark.conf文件,注释掉以下三行:
DatabaseManager.DB.sharkdb.ObjectId.NextWithPrefix = true
DatabaseManager.DB.sharkdb.ObjectId.NextColumnName = nextoid
DatabaseManager.DB.sharkdb.Connection.ShutDownString = SHUTDOWN
Shark 工作流研究1-在Tomcat6上部署Shark Workflow的jspClient示例
最新推荐文章于 2021-03-02 02:58:54 发布