<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開發技術網
    主站蜘蛛池模板: 日本红怡院亚洲红怡院最新| 亚洲精品岛国片在线观看| WWW国产亚洲精品久久麻豆| 亚洲毛片在线免费观看| 亚洲视频在线观看| 久久精品无码专区免费东京热| 久久精品国产精品亚洲蜜月| 99精品免费观看| 亚洲制服丝袜第一页| 成人黄18免费视频| 国产综合激情在线亚洲第一页| 国产免费人成视频在线观看| 精品日韩亚洲AV无码| 美丽的姑娘免费观看在线播放| 亚洲人成免费电影| 四虎影视免费在线| fc2成年免费共享视频18| 久久伊人亚洲AV无码网站| 日韩电影免费在线观看| 久久亚洲精品人成综合网| 无限动漫网在线观看免费| 337p日本欧洲亚洲大胆人人 | 亚洲色图综合在线| 青柠影视在线观看免费高清 | 亚洲Av综合色区无码专区桃色| 最近中文字幕mv免费高清视频8| 色噜噜亚洲男人的天堂| 日韩激情无码免费毛片| 亚洲免费无码在线| 18gay台湾男同亚洲男同| 永久中文字幕免费视频网站| 精品久久久久久国产免费了| 亚洲视频在线视频| 国产成人免费ā片在线观看| 三上悠亚在线观看免费| 亚洲冬月枫中文字幕在线看 | 亚洲网站视频在线观看| 麻豆亚洲AV成人无码久久精品| 久久亚洲av无码精品浪潮| 亚洲免费一级视频| 一级毛片完整版免费播放一区|