Petals ESB 开发之三 服务消息转换

        今天根据实际业务做一个小实验,遵从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文件,如下图所示:

    
Petals ESB 开发之三 服务消息转换_第1张图片
       下一步,取名为:su-Jsr181-ConvertHello-provide,

       使用下一步,如下图所示:


Petals ESB 开发之三 服务消息转换_第2张图片
     这里有两种方式来创建脚本,

     其中,JAX-WS实现类,要把名称写的符合规范,否则不允许通过,也就是命名必须为驼峰方式。

     另外,通过WSDL来做定义,这里不是把WSDL直接转成JAVA的样式,也不去直接调用原来的HelloESB.wsdl,只是生成类似的代码。这种方法的设计可能是想原来的Web Service拥有相同的接口,这样方便调用者直接使用,不需要再次修改接口,官方建议使用JBIContextManager来调用,后面的章节会讲到。

    第三步,把WSDL转换成JAVA客户端代码。方法如下。


Petals ESB 开发之三 服务消息转换_第3张图片
 要把生成的JAVA文件放在指定的目录 ,这个很重要哟,看清楚了大家。

 
Petals ESB 开发之三 服务消息转换_第4张图片
 生成的代码,有部分是报错的,可以先注解掉。

 
Petals ESB 开发之三 服务消息转换_第5张图片
      第四步,修改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

 


Petals ESB 开发之三 服务消息转换_第6张图片
   遇到警告,直接Yes

    第六步,创建消费者

   1)选择SOAP协议,

   2)选择刚才的服务。


Petals ESB 开发之三 服务消息转换_第7张图片
 3)保存为su-SOAP-CovertHello-consume项目,

 4)把刚才的提供者和消费者都加到服务组件当中。

5) 把服务组件生成部署包,右键->Petals->Fast Export to Petals

5)把服务组件部分部署到你的%ESB Install Dir% 目录下,会自动安装。

     第七步,使用soap来测试你的服务。

这里我的测试图,大家参考一下。


Petals ESB 开发之三 服务消息转换_第8张图片
  

 导读:

  1.  Petals ESB 简介 
  2. Petals ESB 安装部署

  3. Petals ESB 开发之一 代理Web Service 

  4. Petals ESB 开发之二    协议转换
  5. Petals ESB 开发之三    服务消息转换

你可能感兴趣的:(ESB,petals)