沉睡森林@漂在北京

          本處文章除注明“轉載”外均為原創,轉載請注明出處。

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            152 隨筆 :: 4 文章 :: 114 評論 :: 0 Trackbacks
           

                 在到處查資料,下載demo后,我終于讓自己的osworkflow工作流跑了起來。環境采用了MySQL5Tomcat6JDBC做持久層。具體的步驟如下:

           

                 1、創建數據庫,腳本如下。

                 osworkflow_app

           

              2、創建數據源,在tomcat根目錄下找到conf目錄里的context.xml文件,在Context節點中加入如下代碼:

          <Resource name="jdbc/osworkflow_app" auth="Container" type="javax.sql.DataSource"

                         maxActive="100" maxIdle="30" maxWait="10000"

                         username="root" password="sa" driverClassName="com.mysql.jdbc.Driver"

                         url="jdbc:mysql://localhost:3306/osworkflow_app"/>

              其中,本人的數據庫用戶名和密碼分別是rootsa,庫表名稱為osworkflow_app,需要修改的是數據庫用戶名和密碼。特別注意,需要把mysql的驅動包隨手丟到tomcatlib目錄下。

           

                 3、分別加入osworkflow的配置文件到src下面。

          log4j.properties

          log4j.rootLogger=debug, A1 , R

           

          log4j.logger.org.apache=INFO

           

          log4j.appender.A1=org.apache.log4j.ConsoleAppender

          log4j.appender.A1.layout=org.apache.log4j.PatternLayout

          log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n

           

          log4j.appender.R=org.apache.log4j.RollingFileAppender

          log4j.appender.R.File=C:/OSWorkflowDemo.log

          log4j.appender.R.MaxFileSize=1000KB

          log4j.appender.R.MaxBackupIndex=1

          log4j.appender.R.layout=org.apache.log4j.PatternLayout

          log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n

           

          osuser.xml

          <?xml version="1.0" encoding="utf-8"?>

          <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">jdbc/osworkflow_app</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">jdbc/osworkflow_app</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">jdbc/osworkflow_app</property>

              </provider>

              <authenticator class="com.opensymphony.user.authenticator.SmartAuthenticator" />

          </opensymphony-user>

           

          osworkflow.xml

          <?xml version="1.0" encoding="utf-8"?>

          <osworkflow>

              <persistence class="com.opensymphony.workflow.spi.jdbc.MySQLWorkflowStore">

                 <property key="datasource" value="java:comp/env/jdbc/osworkflow_app" />

                 <property key="entry.sequence" value="SELECT max(ID)+1 FROM OS_WFENTRY" />

                 <property key="step.sequence" value="SELECT max(ID)+1 FROM OS_STEPIDS" />

                 <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="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" />

                 <!--just for mysql-->

                 <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="entry.sequence.increment" value="INSERT INTO OS_ENTRYIDS (ID) values (null)" />

                 <property key="entry.sequence.retrieve" value="SELECT max(ID) FROM OS_ENTRYIDS" />

              </persistence>

             

              <factory class="com.opensymphony.workflow.loader.XMLWorkflowFactory">

                 <property key="resource" value="workflows.xml" />

              </factory>

          </osworkflow>

           

          propertyset.xml

          <?xml version="1.0" encoding="utf-8"?>

          <propertysets>

              <propertyset name="jdbc"

                class="com.opensymphony.module.propertyset.database.JDBCPropertySet">

                  <arg name="datasource" value="java:comp/env/jdbc/osworkflow_app"/>

                  <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>

           

          workflows.xml

          <?xml version="1.0" encoding="utf-8"?>

          <workflows>

              <workflow name="leave_apply" type="resource" location="bus_zhijian1.xml"/>

          </workflows>

           

           

          4、創建自己的流程描述文件bus_zhijian1.xml。該文件我沒有經過測試,只能自己學習,不能貼出來了。建議初學者可以使用僅僅兩個step的描述文件進行入門的學習。

           

          5、編寫java類和一些FunctionProvider,完成具體的業務。

          posted on 2008-10-07 20:51 王總兵 閱讀(317) 評論(0)  編輯  收藏 所屬分類: Workflow
          主站蜘蛛池模板: 无极县| 广汉市| 南投县| 民乐县| 华安县| 安阳县| 龙川县| 高陵县| 阿克| 察隅县| 德保县| 泗水县| 辽源市| 西宁市| 邹城市| 广昌县| 霍州市| 眉山市| 新平| 夏津县| 读书| 惠安县| 吴川市| 桃园市| 静安区| 夏津县| 陕西省| 肥城市| 桑植县| 凤冈县| 阿克苏市| 静海县| 洮南市| 鄂托克旗| 长沙市| 安龙县| 英山县| 仙桃市| 金寨县| 宁国市| 黄山市|