网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.VB.NET和Java的OOP设计.
.weblogic常见问题提示.
.图片的预先读取-加快下载速度.
.谈模式(Singleton Pattern)的变形.
.Java助力火星探测 其认证深受重视.
.java 技术分析.
.Java界面框架SwingWT发布0.87版.
.Workshop 控件和扩展:第2部.
.使用WebLogic JMX进行定制调.
.教您最优的J2EE学习经验和流程.
.创建通过 WDO访问数据的 JSF 应用.
.轻松搞定Java内存泄漏.
.Good Java Style: Part 2.
.破除java神话之线程按优先级唤醒.
.JSF:Java中面向Web开发的生旦净.
.常见的十四种Java开发工具及其特.
.基于SWING与AWT小应用程序的区别.
.Java Mail API及其应用 —— 一个.
.网友杂谈各种appServer.
.选 择 您 需 要 的 Java 书 籍.

基本的osworkflow API

发表日期:2008-1-5


接口选择:

osworkflow提供几种实现com.opensymphony.workflow.Workflow

 

BasicWorkflow:

不提供事务支持,你可以通过持久层来实现事务处理。

Workflow wf = new BasicWorkflow(username)

这里的username是用来关联当前请求的用户。

 

EJBWorkflow:

用ejb容器来治理事务。在ejb-jar.XML中进行配置。

Workflow wf = new EJBWorkflow()

这里没有必要想basicworkflow和ofbizworkflow那样给出username。因为ejb容器已经校验过的。

 

Ofbizworkflow:

与basicworkflow比较相似,不同只在于需要事务支持的方法由ofbiz TransactionUtil calls来包装。

 

创建新的工作流实例:

这里是以basicworkflow为例子

 

Workflow wf = new BasicWorkflow(username);
HashMap inputs = new HashMap();
inputs.put("docTitle", request.getParameter("title"));

wf.initialize("workflowName", 1, inputs);

 

执行action:

Workflow wf = new BasicWorkflow(username);
HashMap inputs = new HashMap();
inputs.put("docTitle", request.getParameter("title"));
long id = Long.parseLong(request.getParameter("workflowId"));
wf.doAction(id, 1, inputs);

查询:

值得注重的是:并不是所有的 workflow stores支持查询。当前的hibernate,jdbc和内存工作流存储支持查询。Hibernate存储不支持mixed-type查询(如,一个查询使用到了历史和当前step contexts)。为了执行一个查询,需要构造出一个WorkflowEXPressionQuery对象。查询方法是在这个对象上被调用的。

简单查询、嵌套查询、mixed-context查询(不支持hibernate工作流存储)在docs文档的5.4部分都有。

 

 

2.7版的osworkflow提供一种配置接口。默认实现是DefaultConfiguration,通过AbstractWorkflow的setconfiguration方法来更改历史遗留的singleton静态模型使其不会被使用。应该避免每次都创建新的工作流实例。

遗留部分:

Workflow workflow = new BasicWorkflow("blah");
long workflowId = workflow.initialize("someflow", 1, new HashMap());
workflow.doAction(workflowId, 2, new HashMap());
...
//in some other class, called later on
Workflow workflow = new BasicWorkflow("blah");
workflow.doAction(workflowId, 3, new HashMap());

推荐方法:

Workflow workflow = new BasicWorkflow("blah");
Configuration config = new DefaultConfiguration();
workflow.setConfiguration(config);
long workflowId = workflow.initialize("someflow", 1, new HashMap());
workflow.doAction(workflowId, 2, new HashMap());
//keep track of Workflow object somewhere!
...
//in some other class, called later on
//look up Workflow instance that was held onto earlier
Workflow workflow = ...; //note, do NOT create a new one!
workflow.doAction(workflowId, 3, new HashMap());

 

实际当中还是需要到Javadoc中不断去查。


上一篇:关于 final 的奇怪问题 人气:461
下一篇:Eclipse快捷键指南 人气:588
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐