安装osworkflow example

本文介绍如何部署OSWorkflow流程引擎,包括所需软件的下载、安装配置步骤及关键配置文件的内容,如osworkflow.xml、osuser.xml等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.下载文件

 从http://www.opensymphony.com.cn上下载osworkflow-2.8.0.zip

http://www.mysql.com上下载mysql5与jdbc驱动mysql-connector-java-5.0.0-beta.tar.gz

http://tomcat.apache.org/下载tomcat-5.x.x

2.解压安装mysql和tomcat,把osworkflow-2.8.0-example.war拷贝到$tomcat_home/webapps下,mysql-connector-java-5.0.0-beta-bin.jar拷贝到$tomcat_home/server/lib下

3.在mysql里创建一个用户wfuser/wfuser,同时建立一个数据库osworkflow,执行osworkflow-2.8.0/src/etc/deployment/jdbc下的mysql.sql脚本.

4.配置tomcat

在$tomcat_home/conf/server.xml的<host></host>之间加入一个context

<Context path="/osworkflow" docBase="osworkflow"  swallowOutput="true" crossContext="true" reloadable="false">
          <Logger className="org.apache.catalina.logger.FileLogger"
                   prefix="osworkflow." suffix=".log" timestamp="true"/>
          <Resource name="jdbc/oswf" auth="Container" type="javax.sql.DataSource"
            username="wfuser"
            password="wfuser"
            driverClassName="com.mysql.jdbc.Driver"
            url="jdbc:mysql://localhost:3306/osworkflow?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=utf-8"
            maxActive="30"
            maxIdle="5"
            maxWait="50"
            minEvictableIdleTimeMillis="4000"
            timeBetweenEvictionRunsMillis="5000"
            />
         </Context>
5.配置osworkflow应用

osworkflow.xml内容如下

<osworkflow>
<!--
    <persistence class="com.opensymphony.workflow.spi.memory.MemoryWorkflowStore"/>
-->
<persistence class="com.opensymphony.workflow.spi.jdbc.MySQLWorkflowStore">

 <property key="datasource" value="jdbc/oswf"/>
 <property key="entry.sequence"
                      value="SELECT max(id)+1 FROM OS_WFENTRY"/>
 <property key="entry.table" value="OS_WFENTRY"/>
 <property key="entry.id" value="ID"/>
 <property key="entry.name" value="NAME"/>
 <property key="entry.state" value="STATE"/>
 <property key="step.sequence"
                       value="SELECT max(ID)+1 FROM OS_STEPIDS"/>
                      
 <property key="step.sequence.increment"
     value="INSERT INTO OS_STEPIDS (ID) values (null)"/>
   <property key="step.sequence.retrieve"
     value="SELECT max(ID) FROM OS_STEPIDS"/>                      
    
 <property key="history.table" value="OS_HISTORYSTEP"/>
 <property key="current.table" value="OS_CURRENTSTEP"/>
 <property key="historyPrev.table" value="OS_HISTORYSTEP_PREV"/>
 <property key="currentPrev.table" value="OS_CURRENTSTEP_PREV"/>
 <property key="step.id" value="ID"/>
 <property key="step.entryId" value="ENTRY_ID"/>
 <property key="step.stepId" value="STEP_ID"/>
 <property key="step.actionId" value="ACTION_ID"/>
 <property key="step.owner" value="OWNER"/>
 <property key="step.caller" value="CALLER"/>
 <property key="step.startDate" value="START_DATE"/>
 <property key="step.finishDate" value="FINISH_DATE"/>
 <property key="step.dueDate" value="DUE_DATE"/>
 <property key="step.status" value="STATUS"/>
 <property key="step.previousId" value="PREVIOUS_ID"/>
</persistence>   

    <factory class="com.opensymphony.workflow.loader.XMLWorkflowFactory">
        <property key="resource" value="workflows.xml" />
    </factory>
</osworkflow>

 

osuser.xml内容如下

<opensymphony-user>

    <provider class="com.opensymphony.user.provider.jdbc.JDBCAccessProvider">
        <property name="user.table">OS_USER</property>
        <property name="group.table">OS_GROUP</property>
        <property name="membership.table">OS_MEMBERSHIP</property>
        <property name="user.name">USERNAME</property>
        <property name="user.password">PASSWORDHASH</property>
        <property name="group.name">GROUPNAME</property>
        <property name="membership.userName">USERNAME</property>
        <property name="membership.groupName">GROUPNAME</property>
        <property name="datasource">java:comp/env/jdbc/oswf</property>
    </provider>
    <provider class="com.opensymphony.user.provider.jdbc.JDBCCredentialsProvider">
        <property name="user.table">OS_USER</property>
        <property name="group.table">OS_GROUP</property>
        <property name="membership.table">OS_MEMBERSHIP</property>
        <property name="user.name">USERNAME</property>
        <property name="user.password">PASSWORDHASH</property>
        <property name="group.name">GROUPNAME</property>
        <property name="membership.userName">USERNAME</property>
        <property name="membership.groupName">GROUPNAME</property>
        <property name="datasource">java:comp/env/jdbc/oswf</property>
    </provider>
    <provider class="com.opensymphony.user.provider.jdbc.JDBCProfileProvider">
        <property name="user.table">OS_USER</property>
        <property name="group.table">OS_GROUP</property>
        <property name="membership.table">OS_MEMBERSHIP</property>
        <property name="user.name">USERNAME</property>
        <property name="user.password">PASSWORDHASH</property>
        <property name="group.name">GROUPNAME</property>
        <property name="membership.userName">USERNAME</property>
        <property name="membership.groupName">GROUPNAME</property>
        <property name="datasource">java:comp/env/jdbc/oswf</property>
    </provider>
   
    <!--
  Authenticators can take properties just like providers.

  This smart authenticator should work for "most" cases - it dynamically looks up
  the most appropriate authenticator for the current server.
 -->
 <authenticator class="com.opensymphony.user.authenticator.SmartAuthenticator" />
</opensymphony-user>

 

propertyset.xml内容如下

<propertysets>
    <propertyset name="jdbc"
      class="com.opensymphony.module.propertyset.database.JDBCPropertySet">
        <arg name="datasource" value="jdbc/oswf"/>
        <arg name="table.name" value="OS_PROPERTYENTRY"/>
        <arg name="col.globalKey" value="GLOBAL_KEY"/>
        <arg name="col.itemKey" value="ITEM_KEY"/>
        <arg name="col.itemType" value="ITEM_TYPE"/>
        <arg name="col.string" value="STRING_VALUE"/>
        <arg name="col.date" value="DATE_VALUE"/>
        <arg name="col.data" value="DATA_VALUE"/>
        <arg name="col.float" value="FLOAT_VALUE"/>
        <arg name="col.number" value="NUMBER_VALUE"/>
    </propertyset>
</propertysets>

web.xml内容如下

<?xml version="1.0" encoding="ISO-8859-1"?>
<!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>OSWorkflow Example App</display-name>

  <servlet>
    <servlet-name>SOAPWorkflow</servlet-name>
    <servlet-class>com.opensymphony.workflow.soap.SOAPWorkflowServlet</servlet-class>
  </servlet>
 
  <servlet-mapping>
    <servlet-name>SOAPWorkflow</servlet-name>
    <url-pattern>/soap/*</url-pattern>
  </servlet-mapping>
  <resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/oswf</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

  <welcome-file-list>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>

  <jsp-config>
        <jsp-property-group>
        <description>     
        Special property group for JSP Configuration JSP example.  
        </description>
        <display-name>JSPConfiguration</display-name>
        <url-pattern>*.jsp</url-pattern>
        <el-ignored>true</el-ignored>
        <page-encoding>gb2312</page-encoding>
        <scripting-invalid>false</scripting-invalid>
        <include-prelude></include-prelude>
        <include-coda></include-coda>
        </jsp-property-group>
   </jsp-config>
</web-app>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值