b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

讨论客户端调用过程的几种方法

电脑杂谈  发布时间:2020-03-27 22:07:33  来源:网络整理

web调用客户端程序_个人web应用调用支付宝付款_普通类调用spring web bean对象

魏凡国

发布于2005年12月27日

随着IBM引入了新的基于流程的集成产品WebSphere Process Server,流程的构造和调用有了一些新的变化. 首先,该流程作为业务服务组件存在于WebSphere Process Server中. 其次,服务组件编程模型的出现为流程调用方法带来了一些新变化. 第三,由于业务流程编排器(BPC)进行了一些改进,因此它也对流程调用带来了一些更改. 本文在WebSphere Process Server中结合了流程功能,并使用WebSphere Integration Developer V6(称为WID)作为集成开发工具来介绍几种常用的流程调用方法,以便读者可以轻松地在应用程序中集成流程功能.

在构建应用程序之前,请对WID工具执行简单的配置. WID是基于Eclipse框架的开发工具,但是为了减少开发工具的资源消耗,WID默认不加载与J2EE和Web服务相关的插件. 由于开发本文中的示例需要这些功能,因此需要预先设置它们. 设置方法是通过窗口菜单输入首选项配置,打开对J2EE开发和Web服务开发的支持,然后按OK. 设置如下:

为了介绍流程的几种调用方法,我们首先需要构建一个流程. 本文的重点不是流程本身,因此我们将最简单的流程作为调用的对象. 与任何编程语言一样,我们开始编写HelloWorld的“过程版本”. 下面简要介绍HelloWorld流程的创建步骤.

1. 首先创建一个应用程序模块-HelloWorld. 在业务集成透视图中,通过右键单击菜单打开模块创建向导以创建名为HelloWorld的模块.

2. 创建一个共享库-HelloWorldLib. 该共享库的目的是存储一些由不同模块共享的资源,例如接口定义和数据定义. 在此示例中,我们将流程的接口定义放在共享库中. 如下图所示:

3. 为process-HelloWorldInterface创建WSDL接口. 在HelloWorldLib共享库下面的接口列表中,通过向导创建一个名为HelloWorldInterface的WSDL接口. 接口的操作名称为hello,参数名称为helloInput和helloOutput. 为简单起见,将两个参数的类型选择为String类型. 构建后的界面如下图所示:

4. 编辑HelloWorld模块的依赖项设置. 为了使HelloWorld模块能够访问HelloWorldLib共享库中定义的资源,我们需要编辑He​​lloWorld模块的依赖项设置. 双击HelloWorld模块(或从右键单击菜单中选择“打开依赖项编辑器”),然后添加需要依赖的共享库. 如下图所示:

通过这种方式,可以在HelloWorld模块中访问HelloWorldLib共享库中定义的资源.

5. 创建进程-HelloWorldProcess. 在HelloWorld模块下,展开“业务逻辑”,然后选择“流程”. 右键单击菜单打开流程创建向导. 流程名称设置为HelloWorldProcess,流程界面选择在上一步中建立的HelloWorldInterface,操作选择界面中定义的hello操作. 点击完成按钮,我们可以看到以下流程编辑器:

普通类调用spring web bean对象_个人web应用调用支付宝付款_web调用客户端程序

上面显示的过程是根据过程接口定义创建的初始化过程,通常包括一个Receive节点(该过程的入口点)和一个Reply节点(该过程的出口点),具体取决于接口是否定义返回参数). 由于流程本身也是服务组件,因此右上角的“接口伙伴”显示了调用流程组件(即流程的客户端)的接口. 参考伙伴显示对调用其他服务的组件的参考. 在此示例中,该进程暂时为空,因为它不调用其他服务. 变量是变量定义区域. 默认情况下,进程创建向导会根据接口参数名称自动生成变量. 在此示例中,为该过程自动定义了两个变量HelloInput和HelloOutput. 它们的类型与接口定义中指定的类型相同. 那是字符串. 关联集是一组关联关系. 它的作用是使请求与流程实例匹配(可以与Web应用程序中的SessionID进行比较). 由于我们的流程示例是不间断的流程或微流,因此在此示例中无需关联集.

6. 将业务逻辑添加到流程中. 为了简化流程的构造,我们仅为此流程添加一个Snippet节点. 这是基于图形编程或Java编程的节点. 只需将控制面板上的Snippet节点拖动到Receive节点和Reply节点之间,然后将节点名称更改为HelloWorld. 如下图所示:

我们的业务逻辑非常简单. 它仅返回流程输入和“ Hello World”字符串. 因此,选择HelloWorld Snippet节点,然后在属性栏的详细选项中以Java输入业务逻辑代码,如下图所示:

7. 将过程组件添加到装配图中. 在前4个步骤中,我们构建了一个流程业务组件-HelloWorldProcess. 为了使用此流程组件,需要将其添加到模块中. 添加它的最简单方法是打开模块编辑器,然后将HelloWorldProcess拖放到模块编辑器进行保存. 如下图所示:

8. 至此,HelloWorld过程已完成. 下面讨论了调用该过程的几种不同方式.

尽管从WebSphere Process Server的产品名称开始,这是一个专注于流程集成的应用程序服务器平台,但是从技术上讲,该流程只是WebSphere Process Server中许多服务组件之一,并且与其他服务有关. 诸如人工任务,POJO,业务规则组件,选择器等组件都处于同一级别. 这也可以通过WID中“业务逻辑”(业务流程)下的树状组织结构看到. 因此,我们可以通过调用服务组件来调用流程.

为了使客户端调用相对独立于流程本身,我们将分别为流程客户端创建一个应用程序模块(SCAClient). 因为每个模块都对应一个J2EE企业应用程序,所以流程客户端应用程序和流程应用程序是两个独立的企业应用程序. 这样,整个调用体系结构将相对灵活. 下面介绍如何基于服务组件体系结构创建流程客户端.

1. 在HelloWorld模块中为流程组件提供导出端点. 由于流程客户端和HelloWorld流程位于不同的模块中,因此您需要在HelloWorld模块中为该流程创建导出端点. 选择HelloWorldProcess并通过右键单击菜单创建导出端点. 因为流程客户端将以SCA模式调用流程组件,所以选择了SCA绑定模式. 如下图所示:

默认导出名称为HelloWorldProcessExport.

2. 为流程客户端创建一个模块. 创建一个名为SCAClient的模块并编辑其依赖项,使其依赖于HelloWorldLib共享库.

3. 在SCAClient模块中创建一个导入端点(Import). 为了在SCAClient模块中使用HelloWorldProcess,我们需要在SCAClient模块中创建一个Import,以与HelloWorld模块中的Export相对应. 创建它的最简单方法是直接将HelloWorldProcessExport拖放到SCAClient模块的编辑器中,如下所示:

web调用客户端程序_普通类调用spring web bean对象_个人web应用调用支付宝付款

4. 在SCAClient模块中创建一个独立引用. 为了使客户端的JSP页面访问上面的Import1端点web调用客户端程序,您需要为其添加一个独立引用,将其与Import1连接,然后选择WSDL接口类型web调用客户端程序,如下图所示:

此独立引用的引用名称是HelloWorldInterfacePartner.

5. 构建调用过程的index.jsp页面. 将WID切换到J2EE透视图的导航视图,然后在SCAClientWeb Web项目中生成index.jsp页面,如下所示:

6. 分析JSP代码. 此处,调用HelloWorld流程的JSP代码与调用其他服务组件基本相同. 主要步骤是首先生成ServiceManager,然后调用ServiceManager的locateService方法以获取独立引用的服务引用,最后调用该服务的业务方法,该方法是流程接口的hello方法. 主要代码段如下

:

ServiceManager serviceManager = new ServiceManager();
Service service = (Service) serviceManager.locateService("HelloWorldInterfacePartner");
String msg = request.getParameter("message"); //从JSP中得到的输入
DataObject resp = (DataObject) service.invoke("hello",msg);

7. 到目前为止,通过SCA调用流程的工作已经完成. 现在,您可以在WID测试环境中发布HelloWorldApp和SCAClientApp应用程序,然后通过上面的index.jsp页面调用HelloWorld进程. 有关本节中使用的所有代码,请参阅本文所附的项目交换文件SCAClient.zip.

根据BPEL规范,基于BPEL的流程主要通过Web服务接口调用其他服务,而该流程本身在Web服务接口外部,也就是说,可以通过Web服务进行调用. 调用Web服务最重要的信息是对该服务的描述,即WSDL文件. 一个完整的WSDL文件通常包含: 1.服务接口描述,包括类型定义,变量定义和端口类型定义. 2.绑定信息定义,主要是与SOAP协议有关的信息,例如传输协议和编码方法. 3.服务实现信息定义,主要是实际服务提供商的一些信息,例如服务地址. 从前面的流程构建中,我们已经看到WebSphere Process Server中的流程接口主要是WSDL类型的. 但是,这些WSDL接口文件不包含绑定信息和服务实现信息,如下图所示:

因此,您不能直接使用描述流程接口的WSDL文件来通过Web服务调用流程. 对于Web服务调用,绑定信息和服务实现信息是必需的. 那么如何解决这个问题呢? WID通过Export的Web服务绑定方法在原始WSDL接口中提供了丢失的信息. 下面介绍如何创建基于Web服务的流程客户端.

1. 修改HelloWorldProcessExport的绑定方法. 打开HelloWorld模块的模块编辑器,通过右键单击菜单删除原始的SCA绑定方法,然后选择新的Web服务绑定方法,如下图所示:

选择Web服务绑定将提示您是否要自动生成包含绑定信息的WSDL文件并选择SOAP / HTTP传输方法. 您可以在“导出”的绑定信息列中看到以下绑定:

个人web应用调用支付宝付款_web调用客户端程序_普通类调用spring web bean对象

2. 生成一个客户端Web项目. 将WID切换到J2EE透视图,然后创建一个动态Web项目WebServiceClient和企业应用程序项目WebServiceClientEAR. 如下图所示:

3. 准备WSDL文件. 现在我们需要准备用于生成Web服务客户端的WSDL文件. 在J2EE透视图的项目导航视图中,首先根据Web服务生成客户端向导的要求,在WebServiceClient项目的WebContent / WEB-INF /下创建一个wsdl目录. 然后,将HelloWorld模块下的HelloWorldProcessExport_HelloWorldInterfaceHttp_Service.wsdl文件和HelloWorldLib共享库下的HelloWorldInterface.wsdl文件复制到新创建的wsdl目录中. 这两个文件构成了我们所需的完整的HelloWorld流程Web服务描述文件.

4. 通过Web服务客户端创建向导生成Web服务客户端代理. 选择HelloWorldProcessExport_HelloWorldInterfaceHttp_Service.wsdl文件,然后通过右键单击菜单启动Web服务客户端创建向导,如下图所示:

5. 选择Java类型的客户端代理. 在向导中选择客户端代理类型,如下所示:


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shouji/article-154626-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...