WEB开发网
开发学院软件开发Java 使用 Eclipse BPEL 插件开发和执行 WS-BPEL V2.0 ... 阅读

使用 Eclipse BPEL 插件开发和执行 WS-BPEL V2.0 业务流程

 2009-12-14 00:00:00 来源:WEB开发网   
核心提示: 要使用生成的文件,请使用类似如下所示的代码:清单 2. 创建 Web 服务客户机HelloWorldServiceLocatorlocator=newHelloWorldServiceLocator();HelloWorldRequesthwRequest=newHelloWorldReques

要使用生成的文件,请使用类似如下所示的代码:


清单 2. 创建 Web 服务客户机
HelloWorldServiceLocator locator = new HelloWorldServiceLocator(); 
HelloWorldRequest hwRequest = new HelloWorldRequest(); 
hwRequest.setInput("developerWorks!"); 
   
HelloWorldResponse hwResponse = locator.getHelloWorldPort().process(hwRequest); 
String output = hwResponse.getResult();

在执行了代码后,输出变量应当包含 BPEL 流程工作的结果。

ODE 管理 API

ODE 通过 Web 服务提供对一些应用程序管理功能的访问。通过使用 ODE,您可以控制部署到 ODE 中的流程及其实例,这些实例目前是在服务器中执行的。所有操作都是在位于 Tomcat 应用程序的文件夹 webapps/ode/WEB-INF 中的 pmapi.wsdl 文件中描述的。不幸的是,pmapi.wsdl 将使用旧 RPC 文档样式,并且,很难通过 Eclipse Web Services Explorer 测试工具使用它。

访问管理 API 的最佳方式是使用 Axis2 库。特别是使用 ServiceClientUtil 类,该类是由 ode-axis2 库提供的。Axis2 将依赖于其他库,包括 Xerces、Stax 等。ode.war 归档中附带了大多数库,因此可以将其添加到项目依赖关系中。

以下代码将演示如何提取当前流程实例的信息。


清单 3. 提取当前流程实例的信息
ServiceClientUtil client = new ServiceClientUtil(); 
OMElement msg = client. 
 buildMessage("listAllInstances", new String[] {}, new String[] {}); 
OMElement result = 
 client.send(msg, "http://localhost:8080/ode/processes/InstanceManagement"); 
  
List>ProcessInfo> processes = new ArrayList>ProcessInfo>(); 
Iterator>OMElement> i = result.getChildElements(); 
  
while (i.hasNext()) { 
 OMElement omInstanceInfo = i.next(); 
 OMElement omProcessName = 
  omInstanceInfo.getFirstChildWithName( 
   new QName("http://www.apache.org/ode/pmapi/types/2006/08/02/", 
   "process-name")); 
 OMElement omStatus = 
  omInstanceInfo.getFirstChildWithName( 
   new QName("http://www.apache.org/ode/pmapi/types/2006/08/02/", 
  "status")); 
 OMElement omStarted = 
  omInstanceInfo.getFirstChildWithName( 
   new QName("http://www.apache.org/ode/pmapi/types/2006/08/02/", 
  "dt-started")); 
 OMElement omLastActive = 
  omInstanceInfo.getFirstChildWithName( 
   new QName("http://www.apache.org/ode/pmapi/types/2006/08/02/", 
  "dt-last-active")); 
 
 ProcessInfo process = new ProcessInfo(); 
 process.setProcessName(omProcessName.getText()); 
 process.setStatus(omStatus.getText()); 
 process.setStarted(omStarted.getText()); 
 process.setLastActive(omLastActive.getText()); 
 processes.add(process); 
 }

上一页  4 5 6 7 8 9 10  下一页

Tags:使用 Eclipse BPEL

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接