<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工作流跑了起來。環境采用了MySQL5、Tomcat6JDBC做持久層。具體的步驟如下:

     

           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 王總兵 閱讀(316) 評論(0)  編輯  收藏 所屬分類: Workflow
    主站蜘蛛池模板: 最近免费中文字幕大全视频| 吃奶摸下高潮60分钟免费视频| 亚洲Av无码一区二区二三区| 免费中文熟妇在线影片 | 久久久久久成人毛片免费看| 亚洲性无码av在线| 国产aa免费视频| 四虎成人精品永久免费AV| 亚洲最大无码中文字幕| 中文字幕中韩乱码亚洲大片| 亚洲免费中文字幕| 人妻无码中文字幕免费视频蜜桃 | 久久亚洲精品成人AV| 国产麻豆剧传媒精品国产免费| 亚洲三级在线视频| 亚洲精品和日本精品| 2022久久国产精品免费热麻豆| 黄色毛片视频免费| 67194在线午夜亚洲| 亚洲综合AV在线在线播放| 一二三四在线观看免费高清中文在线观看 | 国产免费丝袜调教视频| 一级A毛片免费观看久久精品| 4444亚洲国产成人精品| 亚洲精品A在线观看| 黄色成人网站免费无码av| a成人毛片免费观看| 相泽南亚洲一区二区在线播放| 久久精品国产亚洲av日韩| 亚洲AV网站在线观看| 亚洲国产精品午夜电影| 国产亚洲精午夜久久久久久| 无码高潮少妇毛多水多水免费| 久久永久免费人妻精品| 九一在线完整视频免费观看| 国产亚洲一区二区在线观看| 国产无遮挡色视频免费视频| 亚洲三级高清免费| 99爱视频99爱在线观看免费| 一个人看的www免费视频在线观看 一个人免费视频观看在线www | 国产免费牲交视频|