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

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

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

    本站不再更新,歡迎光臨 java開發技術網
    隨筆-230  評論-230  文章-8  trackbacks-0
    1 新建一個名為oswf的Web Projcet 項目,并添加項目的? struts capabilities,并把osworkflow所需要jar文件拷貝到lib目錄下.

    2 在tomcat的servers.xml文件中配置一個項目連接到我們所在的myeclipse工作區中所建立的oswf項目下的WebRoot目錄下.在servers.xml中添加如下代碼:

    <Context path="/oswf" docBase="D:\peidw\workplace\osworkflow\WebRoot" debug="5" reloadable="true" crossContext="true">
    ??????? <Resource name="jdbc/oswf" auth="Container" type="javax.sql.DataSource"/>
    ????????? <ResourceParams name="jdbc/oswf">
    ????????? <parameter>
    ??????????? <name>factory</name>
    ??????????? <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
    ????????? </parameter>
    ????????? <parameter>
    ??????????? <name>driverClassName</name>
    ??????????? <value>com.mysql.jdbc.Driver</value>
    ????????? </parameter>
    ????????? <parameter>
    ??????????? <name>url</name>
    ??????????? <value>jdbc:mysql://localhost:3306/osworkflow</value>
    ????????? </parameter>
    ????????? <parameter>
    ??????????? <name>username</name>
    ??????????? <value>root</value>
    ????????? </parameter>
    ????????? <parameter>
    ??????????? <name>password</name>
    ??????????? <value></value>
    ????????? </parameter>
    ????????? <parameter>
    ??????????? <name>maxActive</name>
    ??????????? <value>20</value>
    ????????? </parameter>
    ????????? <parameter>
    ??????????? <name>maxIdle</name>
    ??????????? <value>2</value>
    ????????? </parameter>
    ????????? <parameter>
    ??????????? <name>maxWait</name>
    ??????????? <value>-1</value>
    ????????? </parameter>
    ????????? <parameter>
    ??????????? <name>removeAbandoned</name>
    ??????????? <value>true</value>
    ????????? </parameter>
    ????????? <parameter>
    ??????????? <name>removeAbandonedTimeout</name>
    ??????????? <value>300</value>
    ????????? </parameter>
    ??????? </ResourceParams>
    ??????? </Context>

    3? 在src目錄需要建立三個文件來配置OSWorkflow的相關配置.首先是osworkflow.xml文件,至于文件的作用一看就明白,內容如下:
    ?????? <?xml version="1.0" encoding="UTF-8"?>
    <osworkflow>
    ?<persistence class="com.opensymphony.workflow.spi.jdbc.JDBCWorkflowStore">
    ???? <property key="datasource" value="jdbc/oswf"/>
    ????
    ???? <property key="entry.sequence" value="select max(id)+1 from 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="histroyPrev.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.JDBCWorkflowFactory">
    ??<property key="resource" value="workflows.xml"/>
    ?</factory>
    </osworkflow>
    在src目錄下新建一個propertyset.xml來存儲相應的字段配置信息:

    ? <?xml version="1.0" encoding="UTF-8"?>
    <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>
    還要新建一個流程的配置文件,該文件的命名與osworkflow.xml的factory節點里的值有關,如:

    <?xml version="1.0" encoding="UTF-8"?>
    <workflows>
    ? <workflow name="leave" type="resource" location="leave.xml"/>
    </workflows>

    那么leave.xml就是一個工作流的真正配置文件。其內容如下:

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE workflow PUBLIC "-//OpenSymphony Group//DTD OSWorkflow 2.7//EN" 
    "http://www.opensymphony.com/osworkflow/workflow_2_7.dtd">
    <workflow>
      <initial-actions>
       <action id="0" name="開始">
          <results>
            <unconditional-result old-status="Finished" status="Queued" step="1" />
          </results>
        </action>
      </initial-actions>
    
      <steps>
        <step id="1" name="填假單">
          <actions>
            <action id="1" name="送出">
    	  <pre-functions>
    	    <function type="class">
    	      <arg name="class.name">com.opensymphony.workflow.util.Caller</arg>
    	    </function>
    	  </pre-functions>
              <results>
                <unconditional-result old-status="Finished" status="Queued" 
    step="2"  owner="User100" />
              </results>
            </action>
          </actions>
        </step>
    
        <step id="2" name="批假單">
          <actions>
            <action id="2" name="準許">
    	  <pre-functions>
    	    <function type="class">
    	      <arg name="class.name">com.opensymphony.workflow.util.Caller</arg>
    	    </function>
    	  </pre-functions>
              <results>
                <unconditional-result old-status="Finished" status="Queued" 
    step="3"  owner="${caller}"/>
              </results>
            </action>
    
            <action id="3" name="駁回">
    	  <pre-functions>
    	    <function type="class">
    	      <arg name="class.name">com.opensymphony.workflow.util.Caller</arg>
    	    </function>
    	  </pre-functions>
              <results>
                <unconditional-result old-status="Finished" status="Queued" 
    step="1"  owner="${caller}"/>
              </results>
            </action>
          </actions>      
        </step>
    
        <step id="3" name="停止" />
      </steps>
    </workflow>


    這樣就可以配置OSworkflow持久化進mysql中.
    posted on 2006-04-11 15:40 有貓相伴的日子 閱讀(1880) 評論(0)  編輯  收藏 所屬分類: workflow
    本站不再更新,歡迎光臨 java開發技術網
    主站蜘蛛池模板: 亚洲国产一区明星换脸| 国产大片91精品免费观看不卡| 日本二区免费一片黄2019| 亚洲人成www在线播放| www.999精品视频观看免费| 亚洲黄色片免费看| 嘿嘿嘿视频免费网站在线观看| 亚洲最大黄色网站| 九九精品免费视频| 亚洲欧美日韩中文字幕一区二区三区 | 久久久久亚洲精品中文字幕 | 亚洲日韩国产精品无码av| 在线观看的免费网站无遮挡| 亚洲综合网美国十次| 日韩不卡免费视频| 国产偷国产偷亚洲清高APP| 亚洲 国产 图片| 久久精品国产影库免费看| 久久精品国产亚洲AV忘忧草18| 日本免费一区二区三区最新| 人人爽人人爽人人片av免费| 久久香蕉国产线看观看亚洲片| 24小时日本韩国高清免费| 99亚偷拍自图区亚洲| 亚洲成av人片在线观看天堂无码| 韩国免费A级毛片久久| 亚洲第一页在线视频| 免费观看的毛片手机视频| 一级做性色a爰片久久毛片免费| 亚洲啪啪AV无码片| 国产h肉在线视频免费观看| 国产精品亚洲专区无码牛牛| 亚洲精品一品区二品区三品区| 精品无码免费专区毛片| 免费无码又爽又黄又刺激网站| 亚洲av午夜成人片精品网站 | 精品国产日韩亚洲一区在线| 亚洲精品无码永久在线观看你懂的| 真人做A免费观看| jizz免费在线观看| 最新亚洲春色Av无码专区|