osworkflow異常大全

來源:互聯網
上載者:User

文章轉自:http://iting365.blog.hexun.com/30855230_d.html

 

1、osworkflow.xml檔案裡面的配置基本不動,你需要按照osworkflow的要求建造資料庫表。
2、當你要用osworkflow的函數時,你的先調用這個類
如:你用它的內建函數call
你的先定義
<action id="1" name="Start First Draft">
  <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="Underway"
    step="1" owner="${caller}"/>
  </results>
</action>
3、OSUserGroupCondition - 使用OSUser來判斷調用者是否在參數"group"中,有個OSUser.xml檔案。

  StatusCondition - 判斷當前步驟的狀態是否與參數"status"相同。

  AllowOwnerOnlyCondition - 如果調用者是指定的步驟的所有者的話,那麼只返回true,如果沒有指明步驟的話,就返回當前步驟。

  DenyOwnerCondition - 與AllowOwnerOnlyCondition功能相反

4、 Caller用當前動作的執行者名字設定持久化變數caller。
    MostRecentOwner用最近指定的步驟的所有者的名字來設定持久化變數mostRecentOwner。可選特     性可以在有所有者時將變數設定為nothing,或者返回一個內部錯誤。

5、------------------------------osworkflow 異常大全 --------------------------------
1-----org.xml.sax.SAXParseException: The markup in the document following the root element must be well-formed.
xml設定檔頭錯誤 如:docpath寫錯了什麼的
一般就用tomact配置頁面配置出來的資料
2-----javax.naming.NameNotFoundException: Name jdbc is not bound in this Context
首先 應配置同樣工程名稱的.xml檔案 放在tomact的Tomcat 5.0\conf\Catalina\localhost目錄
裡面配置的為資料庫連接池
其次 在osworkflow中用到資料連線池的應在前加java:comp/env/XXXXXXX
再次 應在web.xml中配置
<resource-ref>
  <description>DB Connection</description>
  <res-ref-name>jdbc/leave</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
</resource-ref>
前提是你應在tomact配置了串連池
3--------提示初始化的action的ID value為‘ ’應查看你的流程xml檔案裡面 action是否重複 action的名字在整個xml檔案都是唯一的
4--------提示找不到設定檔 你應注意把所有的設定檔放在src的根目錄
5--------tomact提示找不到驅動程式 把驅動程式classes12.jar放到Tomcat 5.0\common\lib下
6---------報orcale資料庫增長因子的錯SEQUENCE ;應注意資料庫SEQUENCE 的建立
正確的為 應注意SQL語句順序
  create sequence my_seq             ---建立序列名
start with 1                                 ---從1開始
increment by 1                            ---每次增長1
maxvalue 999999999                   ---最大值
minvalue 1                                  ---最小值
cycle                                          ---迴圈
cache                                         ---緩衝
order
7--------You are restricted from initializing this workflow 異常
應注意你的workflow配置裡限制了你不能初始化flow,看看<initial-actions>的<restrict-to>段落
8------------Unable to create current step for workflow instance #14: root cause: ORA-02289: ????????
osworkflow的內建錯誤 指orcale裡面的 step 的ID自增因子不存在。
9、java.sql.SQLException: ORA-02291: ???????? (LEAVE.SYS_C001393) - ????????
Cause: A foreign key value has no matching primary key value.(原因:外索引值沒有匹配的主索引值與它匹配)

Action: Delete the foreign key or add a matching primary key.(解決:刪除外部索引鍵關聯或者添加一個和外鍵匹配的主索引值)
解決方案:通過找程式找出這個主外鍵資料不一致衝突的地方 修改資料庫資料
10、ERROR   at   line   1:  
  ORA-00054:   resource   busy   and   acquire   with   NOWAIT   specified
(1).可能是系統資源不足或oracle正在作一些非常占系統處資源的處理(建議從新啟動資料庫)  
  (2).該登入的使用者沒有分配刪除表的許可權。
(3)表被鎖住了,殺掉鎖表的進程,最好是等一會兒再做,
(4)是不是你在別的程式中正在使用這個表!
-------------------------------------------------------------------------------------------
6、在流程設定檔的同一個action中 指令碼方法不可以重複定義
7、在初試化workflow時initialize()方法 和調用工作流程doaction()都要
Workflow work = new BasicWorkflow(username);//設定上下文context 將caller值傳入
應注意username的傳入 否則會引發異常
8、
<condition type="class">
<arg name="class.name">
com.opensymphony.workflow.util.AllowOwnerOnlyCondition
</arg>
</condition>
含義為:如果調用者是指定的步驟的所有者的話,那麼只返回true,如果沒有指明步驟的話,就返回當前步驟。
不應該用在設定檔的<initial-actions>XXX</initial-actions>中
9、問題:從設定檔獲得參數可以 讀Map args中的資料 但如何動態給設定檔裡面的參數賦值??

10、一旦輸入控制項被disable掉 那麼就無法用request.getparamenter(“XXX”)獲得它的value
11、核心方法propertySet的值一般在每個方法函授的excute方法裡面設定;它可以在任意地方取出來
propertySet一般不能設定object對象,會要求你序列化 所以當你要傳對象時最好使用transientVars

當你想初始化時傳入值 那麼你就在doaction方法中放入map,然後你可以在execute方法中將map transientVars的值set到ps中。
12、方法 execute(Map transientVars, Map args, PropertySet ps) 裡面的transientVars值是在執行工作流程 wf.doAction(id, action, map);的map值 你可以建立一個map,
13、工作流程不能執行完了 方法step=-1時 又返回來執行其他的步驟;-1就是這個工作流程已經完了
14、工作流程的wf.doAction方法只能建立一次 你不能這個方法建立了 另一個方法又建立他
你一般沒辦法在別的地方重新獲得動作列表然後又執行他 否則他可能會重複出現相同action

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.