jameshu999

构客网首页  博客  论坛

 
  SOA我有话说
  本文的标签
SOA (收录4249篇)BPEL (收录146篇)SOA我有话说 (收录205篇)SOA实践 (收录84篇)Oralce (收录5篇)
  用户信息
 
帐号:  新手必读
密码: 保存密码
 
  分类列表
全部类别(133 篇)
产品管理(7 篇)
SOA研究(10 篇)
BPM研究(14 篇)
工作流研究(24 篇)
Portal研究(8 篇)
技术架构(14 篇)
软件应用(15 篇)
研发感悟(13 篇)
OpenWorkflow(14 篇)
随笔随感(14 篇)
  按月归档
2003年-10月(4 篇)
2004年-09月(2 篇)
2004年-12月(6 篇)
2005年-07月(17 篇)
2006年-08月(21 篇)
2006年-12月(13 篇)
2007年-07月(33 篇)
2007年-10月(14 篇)
2008年-02月(22 篇)
2008年-11月(1 篇)
  SOA2007 - SOA实践
我们何时迈向SOA
——SOA在中国的整体发展现状究竟如何?
我们如何迈向SOA
——中国企业如何迈出实施SOA的第一步?
我们应采用何种技术
——SOA国际标准SCA/SDO的具体内涵?
我们还需要何种技能
——SOA将如何改变系统架构设计以及项目管理过程?

Oracle BPEL的研究(3)workflow service api的使用

发布时间:2008年07月10日 作者:jameshu999

阅读次数:995次 类别:工作流研究 永久链接 Trackback 
参加SOA我有话说
供了的java api来满足对workflow service的操作。具体Workflow Services API Reference文档可以从 %SOA_Oracle_Home%

oracle bpel process manager提供了的java api来满足对workflow service的操作。具体Workflow Services API Reference文档可以从 %SOA_Oracle_Home%\bpel\docs\workflow\index.html 查看 编写api操作之前,肯定需要引入相关jar包,至少需要包含如下:   为了便于远程访问process server,还需要将·wf_client_config.xml和wf_config.xml配置文件引入到classpath中。这个文件的原始模板可以从%SOA_Oracle_Home%\bpel\system\services\config 目录中获取。此目录中还有其他一些配置文件,后续可能也会用到。 对wf_client_config.xml需要做一些修改,以满足你特定的情况。最主要的修改,是使用正确的用户名和密码,以及那些web service的访问url(主要是机器地址和端口)。以及对ejb模式的rmi声明,一般需要从默认的:

  1.  <serverURL>ormi://FOX000/hw_services</serverURL>    
  2. 变更为: <serverURL>opmn:ormi://FOX000:oc4j_soa/hw_services</serverURL>    
  3.   
  4. (其中oc4j_soa是你自己的oc4j instance的名称)   

  ------------------------------------------------------------------------------------------------------------------ 这种准备工作做完了,接下来就可以使用java api来操作workflow service了。 首先需要获取IWorkflowServiceClient这个最初接口,可以通过SOAP, Remote EJB, Local EJB, Java, WSIF 这几种方式来获取。

  1. //获取client接口    
  2.   
  3. IWorkflowServiceClient client =WorkflowServiceClientFactory.getWorkflowServiceClient(                                                                                                   WorkflowServiceClientFactory.REMOTE_CLIENT);    
  4.   
  5.   
  6.   
  7. //然后获取TaskQueryService,进行任务查询操作:    
  8.   
  9. ITaskQueryService taskQueryService = client.getTaskQueryService();    
  10.   
  11.   
  12.   
  13. //获取一个workflow context,主要用于后续验证用户是否有相应的权限    
  14.   
  15. IWorkflowContext ctx = taskQueryService.authenticate("istone","welcome1","jazn.com"null);    
  16.   
  17.   
  18.   
  19. //构造查询过滤条件    
  20.   
  21. Predicate subFilter1 = new Predicate(TableConstants.WFTASK_STATE_COLUMN, Predicate.OP_EQ, "ASSIGNED");    
  22.   
  23. Predicate subFilter2 = new Predicate(TableConstants.WFTASK_ACQUIREDBY_COLUMN, Predicate.OP_EQ, ctx.getUser());    
  24.   
  25. Predicate mainFilter = new Predicate(subFilter1, Predicate.AND, subFilter2 );    
  26.   
  27.   
  28.   
  29. //构造查询显示元素            
  30.   
  31. List queryColumns = new ArrayList();            
  32.   
  33. queryColumns.add(TableConstants.WFTASK_TITLE_COLUMN.getName());            
  34.   
  35. queryColumns.add(TableConstants.WFTASK_PRIORITY_COLUMN.getName());           
  36.   
  37.  queryColumns.add(TableConstants.WFTASK_STATE_COLUMN.getName());            
  38.   
  39. queryColumns.add(TableConstants.WFTASK_SUBSTATE_COLUMN.getName());            
  40.   
  41. queryColumns.add(TableConstants.WFTASK_ACQUIREDBY_COLUMN.getName());            
  42. queryColumns.add(TableConstants.WFTASK_TASKID_COLUMN.getName());            
  43.   
  44. queryColumns.add(TableConstants.WFTASK_TASKNUMBER_COLUMN.getName());    
  45.   
  46.   
  47.   
  48. //查询    
  49.   
  50. List<Task> resultSet = taskQueryService.queryTasks(ctx, queryColumns, null, ITaskQueryService.ASSIGNMENT_FILTER_ALL , null, mainFilter , null, 0, 0);   

当然,如上的代码只是很简单的使用api操作。具体有兴趣,可以参考api doc进行。


本文参加了“SOA中国的关键任务”博客大赢家,评论文章即可参与活动,赢取万元奖金!

 评论 查看全部评论