mule多值返回

我们在调用接口时,有时候不仅要返回报文还想返回别的信息,那么这在MULE中是怎么实现的那?先看效果:
mule多值返回_第1张图片
 在这里例子中,不仅返回了报文,还返回了一个values值,这样就实现的返回多个值,下面看看具体是怎么实现的
 1.这里我们需要用到4和组建 http、echo、Java、Message Properties这里我们要去其他值就不能用浏览器直接访问了,我们需要用代码去调用,这里的echo也是把用户发送的信息转换成payload对象,这样我们就可以通过代码去调用了。

2.这里的重点是Message Properties的配置下面看看他是如何配置的


mule多值返回_第2张图片
 看看这个类里是什么东西

=========================RetrnOtherInfo ===================

package values;

public class RetrnOtherInfo {
   public static String otherInfo(){
    return "code";
   }
}
这个方法很简单,就提供了一个静态的方法,在这个方法里面处理要返回给客户的参数。

3.客户端是怎么或取的那?下面看下客户端调用代码:


mule多值返回_第3张图片
 ==================================客户端调用代码=====================


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class TestValues {
public static void main(String[] args) {
 OutputStream os = null;
 String xml =  "xmlInfo" ;//要发送的报文
 try {
  String returnXml = "" ; //返回的报文
  URL url = new URL("http://127.0.0.1:8084/");
  HttpURLConnection connection = (HttpURLConnection) url.openConnection();
  connection.setDoOutput(true);// 允许连接提交信息
  connection.setRequestMethod("POST");// 网页提交方式“GET”、“POST” 
  StringBuffer sb = new StringBuffer();
  sb.append(xml);
  os = connection.getOutputStream(); 
  os.write(sb.toString().getBytes());
  os.close();
  System.out.println("=======返回的报文头:"+connection.getHeaderFields());
  System.out.println("=========编码======="+connection);
  System.out.println("本次返回的其他值:"+connection.getHeaderFields().get("values").get(0));
  BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(),"UTF-8"));
  String inputLine;
  // f 1
  while ((inputLine = br.readLine()) != null){
   returnXml = inputLine;
  }
     System.out.println("本次返回的报文:"+returnXml);
  
 } catch (Exception e) {
      System.out.println(e);
 }
}


}


 

你可能感兴趣的:(mule)