今天根据实际业务做一个小实验,遵从JSR181规范来写些代码。(代码控比较喜欢)
业务场景描述:
1)客户端发出一个内部代码,比如000000 (代表国家局),而ESB要输出给消费者 000000[国家局]。
2)客户端发出一个自己的内部代码,比如GJJ(代表国家局),而ESB要输出给消费者 000000[国家局]。
3)客户端发出一个内部代码,比如0000_TO_1100,表示要从1100这个服务器取得结果返回结果,也就是通过ESB再次访问一个Web Service,返回结果。
开发前准备。
1,Web service使用Petals ESB 开发之一 代理Web Service 当中的Hello.war包为准。
2,使用Petals Studio 1.3.4进行开发。
开发思路。
1)提供者:ESB做这Web service的客户端直接调用第三方的服务,根据返回结果再做加工处理。
2)消费者:把刚才的Service发布成SOAP协议的WEB服务
(其实,还有一种工作思路,就是通过取得JBIContextManager取到服务组件当中的资源,通过jbiContext.getMessageSender().send来发送请求。后面的教学当中会加入。)
开始了
第一步,创建服务组件,命名为:ConvertHello
第二步,创建提供者,使用jsr181创建java文件,如下图所示:
下一步,取名为:su-Jsr181-ConvertHello-provide,
使用下一步,如下图所示:
这里有两种方式来创建脚本,
其中,JAX-WS实现类,要把名称写的符合规范,否则不允许通过,也就是命名必须为驼峰方式。
另外,通过WSDL来做定义,这里不是把WSDL直接转成JAVA的样式,也不去直接调用原来的HelloESB.wsdl,只是生成类似的代码。这种方法的设计可能是想原来的Web Service拥有相同的接口,这样方便调用者直接使用,不需要再次修改接口,官方建议使用JBIContextManager来调用,后面的章节会讲到。
第三步,把WSDL转换成JAVA客户端代码。方法如下。
要把生成的JAVA文件放在指定的目录 ,这个很重要哟,看清楚了大家。
生成的代码,有部分是报错的,可以先注解掉。
第四步,修改CovertHello.java,代码如下:
@WebMethod( operationName="hello" ) @WebResult( name="returnMessage" ) public String hello( @WebParam( name="message" )String message) { HelloESBPortType hello = new HelloESB().getHelloESBHttpPort(); String newMessage = ""; if (message==null || message.equals("")){ return "Hello World!"; } if (message.equals("0000000")|| message.equalsIgnoreCase("GJJ")){ newMessage ="0000000[国家局]"; } if (message.contains("_TO_")){ //调用其它的Web service,这里省略。 } return hello.hello(newMessage); }
第五步,生成WSDL,
遇到警告,直接Yes
第六步,创建消费者
1)选择SOAP协议,
2)选择刚才的服务。
3)保存为su-SOAP-CovertHello-consume项目,
4)把刚才的提供者和消费者都加到服务组件当中。
5) 把服务组件生成部署包,右键->Petals->Fast Export to Petals
5)把服务组件部分部署到你的%ESB Install Dir% 目录下,会自动安装。
第七步,使用soap来测试你的服务。
这里我的测试图,大家参考一下。
导读:
相关推荐
Hello Web Serivce 博文链接:https://heweiya.iteye.com/blog/2003410
基于 PlayFramework v2 的 OW2-Petals ESB ( ) 的管理 Web 控制台。 安装和运行 在下载 PlayFramework >= v2.2.1,将其添加到您的路径中,然后: git clone ...
CIM在PEtALS ESB中用于描述服务和消息的结构。 2. **org.objectweb.petals.tools.plugin.development_1.0.0.M3.jar**: 这个文件很可能包含了PEtALS ESB的开发工具,提供了创建、配置和测试服务的工作流。 3. **org...
Sketch支持版本控制和团队协作,意味着Petals app的开发团队可以共同编辑设计,追踪修改历史,从而提高工作效率。 总的来说,Petals app的登录和注册界面Sketch素材不仅是设计资源,也是理解UI设计原则和实践的...
CXF提供了丰富的编程工具,包括但不限于从Java到WSDL、从WSDL到Java、从XSD到WSDL、从WSDL到XML、再到SOAP和service的转换工具,极大地简化了开发流程,提高了开发效率。 #### HelloWorld示例详解 以一个简单的...
maven-petals-plugin-2.1.4.jar
maven-petals-plugin-2.1.3.jar
maven-petals-plugin-2.1.2.jar
maven-petals-plugin-2.1.1.jar
maven-petals-plugin-1.3.1.jar
maven-petals-plugin-1.3.0.jar
maven-petals-plugin-1.2.2.jar
maven-petals-plugin-1.1.1.jar
maven-petals-plugin-1.1.0.jar
maven-petals-plugin-1.0.1.jar
maven-petals-plugin-1.0.0.jar
maven-petals-plugin-2.1.4-sources.jar
maven-petals-plugin-2.1.3-sources.jar
maven-petals-plugin-2.1.2-sources.jar