1.概述
Web服务是ESB中间件的常见解决方案,它使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件,就可相互交换数据或集成。依据Web Service规范实施的应用之间,无论它们所使用的语言、平台或内部协议是什么,都可以相互交换数据。
AEAIESB提供了非常便捷的服务创建方式,本文档主要为读者介绍如何使用ESB来创建一个简单的Web服务接口。
2.样例
- 创建webservice服务 在WS目录右键,点击“创建web服务”,如下图:
- 配置web服务向导 服务名称填写“HelloWorld”,点击Finish。
- 服务设计 右键点击“添加操作”,操作名称填写“sayHello”,入参名称修改为words,在操作名称处右键点击“绑定流程” ,选择快速上手文件夹。Ctrl + S保存服务配置。
- 初始化Web服务 右键HelloWorld服务名称,点击“初始化Web服务”。
- 流程设计 在快速上手文件夹中可以找到绑定的消息流程,流程设计如下图所示:
- 编写“输出文字”内代码
packagecom.aeai.demo.messageflows.helloworldsayhello;
importcom.agileai.esb.component.invoker.InvokerService;
importcom.agileai.esb.core.AdapteException;
import com.agileai.esb.core.AttributeMap;
importcom.aeai.demo.services.helloworld.SayHello;
importcom.aeai.demo.services.helloworld.SayHelloResponse;
public classJavaInvoker3 extends InvokerService{
publicSayHello getRequest(){
AttributeMap sourceReq =(AttributeMap)this.getMessageFlow().getRequest();
return(SayHello)sourceReq.get("soapReqObject");
}
publicSayHelloResponse getResponse(){
AttributeMap sourceRsp =(AttributeMap)this.getMessageFlow().getResponse();
return(SayHelloResponse)sourceRsp.get("soapRspObject");
}
publicvoid invoke() throws AdapteException{
String words =getRequest().getWords();
getResponse().setReturn("Say: " + words);
}
}
- 部署消息流程 右键服务名称,点击“部署Web服务”。
- 测试Web服务 我们这里使用soapUI工具来测试webservice,启动soapUI,界面如下所示:
- 配置soapUI 新建soapUI project,将web服务地址粘贴到弹出框的InitialWSDL/WADL框中,点击“OK”完成。
- 执行Web服务 选择project中的sayHello操作,解析出SOAP信封内容,参数words填写“你好!”,点击执行按钮,右侧返回Web服务返回值。
AEAI ESB-基于ESB的Web服务开发文档 下载