osworkflow详解及异常大全

osworkflow源码解读----第一章osworkflow项目组织结构 <br />要读源码咱们得先从获取源码开始,了解项目的目录结构。从osworkflow官网http://www.opensymphony.com/osworkflow/最近的版本是2.8.0,日期为2006-08-06.<br /><br />请点”full”下载包括源码的压缩包。解压到本地内容如下:<br /><br />       Docs:API文档、一些功能点的使用帮助文档<br />       Lib:osworkflow各功能用到的第三方jar包<br />       Src:这里存放着源 阅读详情

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

docker部署zabbix6.2.7+grafana docker部署zabbix6.2.7+grafana。 阅读详情

相关推荐

TP4056锂电池充电电路设计原理与工程实践

锂离子电池充电管理是嵌入式电源系统的核心基础技术,其本质是通过恒流恒压(CC/CV)控制策略,匹配电池电化学特性以实现安全、高效、长寿命充放电。TP4056作为典型线性充电IC,以精简外围实现预充、恒流、恒压及自动截止全周期管理,但受限于线性拓扑的热耗散特性,必须协同散热设计、电阻精度选型与PCB布局进行系统级优化。该方案广泛应用于STM32智能小车、便携传感器节点等3.7V单节锂电供电场景,兼顾成本、可靠性与工程可实施性,是入门嵌入式硬件电源设计的关键实践范例。

weixin_36064575的博客 219

java代码显示正确执行,但为何数据未成功插入数据库?原因如下

java代码显示正确执行,但为何数据未成功插入数据库?原因如下 insert into records (uid,ke) values ('"+data[i][0]+"','"+sum[i]+"')" 当我在java里写上面代码时候,一直没有存进去数据库,控制台也不报错,并且我在后面还输出一个成功的话语,导致很懵比。 这使得让我一直在网络上寻找。直到发现是事物没有提交设置se

唐宋源码清的博客 2万+

Simulink封装与库的建立

第二栏设置标签,第三栏是对应变量名,即是第一张图中的常量名。1.先将输入与常量模块相连接并生成子系统。按照如图所示添加修改,最后的效果如下图。封装子系统搭建测试环境。

lensyu1994的博客 1741

Java开源工作流OSWorkflow常见问题

    OSWorkflow是一个Java开源的工作流,使用Apache许可。OSWorkflow的最大特点是灵活,它所面向的使用对象是专业开发人员,如果最终用户想调整工作流,那是不太现实的。OSWorkflow的流程定义使用自己的xml格式,不遵守XPDL规范。     在http://www.opensymphony.com/osworkflow/下载OSWorkflow,本文使用的是

滔滔江水的技术博客 3512

Flowable高级篇 -6.8.0 最全表结构说明-主要表结构字段注释

flowable 28张表 详细

billzhen的博客 1万+

新手必看:如何用Python模拟电动助力转向系统(EPS)的传感器信号处理

本文详细介绍了如何使用Python模拟电动助力转向系统(EPS)的传感器信号处理流程,包括转向力矩、转向角度和车速信号的生成与滤波处理。通过实战代码示例,帮助开发者理解ECU如何计算助力扭矩,并提供了可视化分析和性能优化建议,适合汽车电子系统开发新手学习。

weixin_28327051的博客 354

Workflow常见错误如何解决

Workflow在cluster跑的时候经常会出现一些错误。一般yo

sinat_19371493的专栏 3295

人工智能AI在软件测试和质量效能中的实际应用

人工智能在软件测试中应用,介绍chatGPT在测试中的应用,还有多个AI驱动的测试工具。

lindafang72的博客 1万+

osworkflow 学习笔记

OSWorkflow是opensymphony组织开发的一个工作流引擎,目前的版本是2.8。OSWorkflow用纯Java语言编写,并且开放源代码。它最大的特点就是极其的灵活。它面向的人群是具有技术背景的软件开发人员。OSWorkflow不提倡用可视化工具定义流程。用户可以根据自己的实际需求,来设计出完全符合自身业务逻辑的系统,而并不需要使用复杂的代码去实现。换句话说OSWorkflow让我们真...

stevenbill的博客 364

VS Code配置MASM32汇编环境:从安装到调试的完整指南

本文提供了一份详尽的指南,教你如何在VS Code中配置MASM32汇编开发环境,实现从安装、环境变量设置到编写、编译和调试32位Windows汇编窗口程序的完整工作流。通过集成现代编辑器的便利性与经典汇编工具链,旨在降低学习门槛,提升底层开发效率。

nn3456的博客 483

【深度解析TI InstaSPIN】无传感器FOC控制的核心方案

TI InstaSPIN通过“自动识别+通用观测器+开源工具链”的组合,解决了无传感器FOC控制开发难度大、周期长的核心痛点。其核心优势在于快速统一软件观测器的通用性与高精度,以及Fly Start闭环零速启动策略的高可靠性,可适配空调压缩机等家电电机的复杂运行需求。在空调外机双电机控制场景中,InstaSPIN与TI C2000系列MCU(F280013x/F28E12x)完美契合,借助MCU的高性能DSP内核与丰富外设,可实现双电机的精准同步控制,同时降低硬件成本与开发周期。

昔时扬尘处 323

这一年让我印象深刻的bug --外部接口请求失败问题

调用外部系统要注意事务一致性。

weixin_42072632的博客 792

论文分栏前后内容不连续?教你word如何删除分节符

问题 当我们在写论文的时候,很多期刊的模板都是两栏的格式,但有的时候我们插入的图像尺寸可能太大,两栏格式放不下,因此需要将其以一栏的格式出入,如下: 但当我们把图片删除后,再将其转换成两栏格式,前后内容就出现不连续的情况: 正常情况下应该是如下: 正确处理方式 里面有个分页符,把分页符去掉,或者把你的文字全部复制到记事本里,然后重新复制回word就可以取消原有的格式了。 删除分节符的方法(以word 2019为例) -点击菜单栏上的“视图”,点击“大纲视图”。 可以看到word文档以整列的形式展开:

左手の明天的博客 1万+

osworkflow异常大全

文章转自:http://iting365.blog.hexun.com/30855230_d.html   1、osworkflow.xml文件里面的配置基本不动,你需要按照osworkflow的要求建造数据库表。 2、当你要用osworkflow的函数时,你的先调用这个类 如:你用它的内置函数call 你的先定义                   com.opens

yanmushi的专栏 1780

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

更改osworkflow支持hibernate3

问题分析:OSWorkflow2.7.0支持 hibernate2.1.8问题一:propertyset找不到对应的源码。在opensymphony上下载到的代码与osworkflow中包含的propertyset包不一致。Osworkflow2.7.0自带的为propertyset-1.3-21Apr04.jar。而实际在主站中下载到的为propertyset1.3.jar其中在property

清澈反省 2342

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

OsWorkFlow学习(数据库设置)

OsWorkFlow官方网站:http://www.opensymphony.com/osworkflow/从网上找到OsWorkFlow的一些介绍性文摘,例如:http://my.so-net.net.tw/idealist/OSWorkflow/。开始自己第一个OsWorkFlow程序。环境:jboss 4.0.1 sp1,Ms sql server 2000 sp4一、数据库设置(注意红色字...

weixin_34221036的博客 547

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

OSWorkflow源码分析

 OSWorkflow的关键包组成:-          com.opensymphony.workflow-          com.opensymphony.workflow.config-          com.opensymphony.workflow.loader-          com.opensymphony.workflow.query-          com.ope

一杯咖啡 2413

3-OSWorkflow源码分析

 OSWorkflow的关键包组成:-          com.opensymphony.workflow  对工作流进行管理的入口-          com.opensymphony.workflow.config 加载配置,创建WorkflowFactory-          com.opensymphony.workflow.loader 工作流定义的管理WorkflowD

deadswan000的专栏 1719

OSWorkFlow使用总结

OSWorkflow比起JBPM是比较低级的工作流,很多功能需要开发,但是非常灵活,对比较简单的流程,如商业银行绩效考核中的帐户归属流程、定性考核流程是比较适合的。      在使用过程中,项目组发现了一些问题,现总结如下,请大家讨论。    1、集成到spring中的事务问题  OS_Workflow中没有直接集成IBatis的数据操作类,因此需要自己写一个数据操作类,可采用同一data

shuangyidehudie的专栏 1072

OSWorkflow的Validators,Registers和Conditions[原]

三、OSWorkflow的Validators与OSWorkflow的函数一样,OSWorkflow的validators也有三种不同的形式:Java-based, BeanShell和BSF。Java-based的Validators必须实现com.opensymphony.workflow.Validator接口(或者如果通过远程EJB的话,要实现com.opensymphony.

猴子腿儿的Blog 3282

osworkflow API 之 com.opensymphony.workflow

学习应用osworkflow 理解应用osworkflow-2.7.0.jar是必须的。下面我就个人理解谈谈对osworkflow-2.7.0.jar的认识。由于个人目前学习主要侧重于轻量级J2EE。所以对EJB这部分认识不深也就不妄加评价了。而且每个包都是我自己所能理解或者自己认为比较能常用的类和接口进行初步说明。不足之处请见谅!另外此文也是搜索了大量了网络资源融合个人理解所写。所以会出现此文中

清澈反省 3155

OSWorkflow的第二个程序

OSWorkflow的第二支程式 這裡將介紹如何在流程裡加上限制,首先修改leave.xml,限制送出假單的人一定要是啟動流程的人。 &lt;?xml version="1.0" encoding="UTF-8" ?&gt; &lt;!DOCTYPE workflow PUBLIC "-//OpenSymphony Group//DTD OSWorkflow 2.7//EN" "http://w...

zhou363667565的专栏 188

OSWorkflow 2.8.0 部署与核心机制解析:一次经典工作流引擎的实践考古

工作流引擎是协调业务流程自动化执行的核心组件,其设计通常基于有限状态机(FSM)等理论模型,通过定义状态、转换和动作来实现业务逻辑的编排。在技术原理上,工作流引擎将流程定义与运行时实例分离,并通过条件、函数等扩展点注入具体业务逻辑,从而实现技术框架与业务领域的解耦。这种设计具有很高的技术价值,它使得复杂、多变的业务流程得以标准化、可视化管理和稳定执行,是构建审批系统、订单处理等场景的关键基础设施。本文以经典的OSWorkflow引擎为例,通过实际部署其2.8.0版本示例应用,深入剖析了其基于XML的流程定义

weixin_33747129的博客 405

OSWorkflow的第二支程式

這裡將介紹如何在流程裡加上限制,首先修改leave.xml,限制送出假單的人一定要是啟動流程的人。 com.opensymphony.workflow.util.Caller ...

friping的专栏 145
上一篇: 解决IE6png背景图片透明的问题
下一篇: java正则表达式验证整数、浮点数和日期
flm_0722
博客等级 码龄19年 36粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值