osworkflow异常大全

文章转自: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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值