<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    沉睡森林@漂在北京

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

      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
    主站蜘蛛池模板: 永久免费av无码不卡在线观看| 中文字幕精品亚洲无线码一区| 免费很黄无遮挡的视频毛片| 亚洲一区二区三区无码中文字幕| 在线成人爽a毛片免费软件| 亚洲老熟女五十路老熟女bbw| 国产成人麻豆亚洲综合无码精品| 国产精品免费网站| 成人一级免费视频| 亚洲国产成人在线视频 | 中文字幕精品亚洲无线码一区| 2015日韩永久免费视频播放 | 国产免费无码一区二区| 亚洲不卡中文字幕| 亚洲一区无码中文字幕| 永久免费毛片在线播放| a在线观看免费网址大全| 在线观看亚洲AV每日更新无码| 亚洲热线99精品视频| 在线免费观看一区二区三区| 美女被cao网站免费看在线看| WWW亚洲色大成网络.COM | 亚洲第一成年免费网站| 亚洲一本综合久久| 亚洲精品线路一在线观看 | 亚洲美女自拍视频| 自拍偷自拍亚洲精品被多人伦好爽| 精品少妇人妻AV免费久久洗澡| 免费无遮挡无码永久视频| 国产成人自产拍免费视频| 色天使亚洲综合一区二区| 亚洲白嫩在线观看| 久久亚洲高清观看| 亚洲精品亚洲人成在线观看下载| 在线jlzzjlzz免费播放| 99久久99久久精品免费观看| 中国一级特黄高清免费的大片中国一级黄色片 | 亚洲噜噜噜噜噜影院在线播放 | 亚洲欧洲日产国码在线观看| 久久精品九九亚洲精品天堂| 亚洲免费日韩无码系列|