分享

对接成功Boss系统

 CevenCheng 2013-03-08

开这次给视频会议做的营帐系统与移动的Boss对接成功,销户等操作移动需要我们提供接口给boss,原理很简单,但是还是写一篇文章贡献一下自己的经验吧。 
大概是这样子的架构。 
  TCPServer(我们提供) 
(socket/xml调用) 
《--------- 
  移动BOSS系统, 
原理就是boss发送xml消息过来,具体是开户还是销户等等比如开户移动发来的xml格式是这样的 

Xml代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>   
  2. <OrderMessage>   
  3.     <OrderId>12345</OrderId>           // Transaction Number   
  4.     <MessageBody>   
  5.         <Order>   
  6.             <OrderType>1</OrderType>  // Service Type   
  7.             <User>                    // User Structure   
  8.                 <Name>02162855709</Name>   
  9.                 <Password>3eU9ed</Password>   
  10.                 <Telephone>02162855709</Telephone>   
  11.                 <Activated>1</Activated>   
  12.                 <Email>myname@gmail.com</Email>   
  13.                 <Mobile>13952409898</Mobile>   
  14.             </User>   
  15.         </Order>   
  16.     </MessageBody>   
  17. </OrderMessage>  
Xml代码  收藏代码
  1.   

 
具体我们就用socket服务器,只要用dom4j解析这些字段就好,然后调用我们系统的Service来开销户, 
写一个Socket服务线程 ,这里用到阻塞io,因为系统的开销户的压力不大,线性处理还是处理的过来的。

Java代码  收藏代码
  1.                                                                 Socket datagramSocket = new ServerSocket (port);  
  2.                            socket = datagramSocket.accept();  
  3.                             InputStream is = socket.getInputStream();  
  4.                 String resultStr = null;     
  5.                 int readIndex = 5 * 1024 * 1024;     
  6.                 BufferedReader bufferedReader = new BufferedReader(     
  7.                 new InputStreamReader(is), readIndex);  
  8.                 char[] charArray = new char[readIndex];  
  9.                 int read_rst=0;  
  10.                 PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);  
  11.                 while ((read_rst = bufferedReader.read(charArray))!=-1) {   
  12.                     try {  
  13.                 resultStr = new String(charArray, 0, read_rst);     
  14.                 XmlContent=resultStr;  
  15.                             XmlContent=XmlContent.trim();  
  16.                 log.debug(">>>>>>>>>>>>>>>>>>>>>>>>>>>>收到boss消息:"+XmlContent);  
  17.                 SAXReader reader = new SAXReader();  
  18.                 Document doc;  
  19.                   
  20.                 doc = reader.read(new ByteArrayInputStream(XmlContent.getBytes("UTF-8")));   
  21.                 org.dom4j.Element root = doc.getRootElement();  
  22.                 log.debug(root.getText());  
  23.                 log.debug(root.getName());  
  24.                 if(root!=null)  
  25.                 {  
  26.                 Element OrderId=root.element("OrderId");  
  27.                 ordId=OrderId.getStringValue();  
  28.                 Element MessageBody=root.element("MessageBody");  
  29.                 Element Order=MessageBody.element("Order");  
  30.                 Element OrderType=Order.element("OrderType");  
  31.                   
  32. //              System.out.println(OrderType.getStringValue());  
  33. //              System.out.println("XmlContent from client : " + XmlContent);  
  34.                  if(OrderType.getStringValue().trim().equals("1"))  
  35.                  {  
  36.                      log.debug(">>>>>>>>>>>socket 创建用户");  
  37.                      Element User =Order.element("User");  
  38.                      Element Name=User.element("Name");  
  39.                      Element Password=User.element("Password");  
  40.                      Element Telephone=User.element("Telephone");  
  41.                      Element Activated=User.element("Activated");  
  42.                      Element Email=User.element("Email");  
  43.                      Element Mobile=User.element("Mobile");  
  44. .......do 开户serveice  
  45. }  

 
很简单吧,其实两个异构系统用底层tcp自己规定解析方式是一种很简单的方法,没有必要一提到异构系统就用到SOAP,WEBSERVICE,简单有时候也可以解决很多问题。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多