<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 王總兵 閱讀(322) 評論(0)  編輯  收藏 所屬分類: Workflow
    主站蜘蛛池模板: 亚洲一区二区久久| 4480yy私人影院亚洲| 亚洲AV性色在线观看| 91免费资源网站入口| 亚洲一区在线免费观看| 四虎在线免费视频| 亚洲国产成人九九综合| 亚洲三级高清免费| 最新国产精品亚洲| 精品免费国产一区二区| 18禁亚洲深夜福利人口| 亚洲AV无码乱码在线观看性色扶| 猫咪www免费人成网站| 亚洲区不卡顿区在线观看| 国产午夜精品理论片免费观看 | 久久久亚洲欧洲日产国码aⅴ| 99久热只有精品视频免费观看17| 亚洲另类图片另类电影| 成人免费毛片视频| 色费女人18女人毛片免费视频 | 国产午夜无码视频免费网站| 免费中文字幕视频| 亚洲成AV人片在| 99在线精品免费视频九九视| 亚洲欧洲精品成人久久曰| 亚洲国产一区二区三区| 男人都懂www深夜免费网站| 亚洲最大黄色网站| 免费人成视网站在线观看不卡| 九九99热免费最新版| 亚洲高清美女一区二区三区| 免费无码黄动漫在线观看| 国产精品偷伦视频免费观看了| 亚洲免费在线视频| 国产精品久免费的黄网站| 国产无遮挡色视频免费观看性色| 色拍自拍亚洲综合图区| 国产免费私拍一区二区三区| 日韩电影免费在线观看| 在线亚洲v日韩v| 亚洲男人天堂av|