<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Dict.CN 在線詞典, 英語學習, 在線翻譯

    都市淘沙者

    荔枝FM Everyone can be host

    統計

    留言簿(23)

    積分與排名

    優秀學習網站

    友情連接

    閱讀排行榜

    評論排行榜

    HttpURLConnection常用處理方式

    /*
     * Classname       : GameSoapProcessor
     * Create Date     : 2008-5-7
     
    */

    package cn.allinpalm.sns.app.web.mxt.game;

    import java.io.File;
    import java.io.IOException;
    import java.io.OutputStream;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.Iterator;

    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import org.apache.log4j.Logger;
    import org.dom4j.Document;
    import org.dom4j.DocumentException;
    import org.dom4j.Element;
    import org.dom4j.io.SAXReader;
    import org.hibernate.HibernateException;

    import cn.allinpalm.sns.app.wirelessapi.HttpSend;
    import cn.allinpalm.sns.app.web.filter.HibernateFilter;

    /**
     * 處理從游戲服務商接收到的SOAP消息
     * 
     * 
    @author   lqm
     * 
    @version  1.0
     
    */

    public class SoapMsgProcessorServlet extends HttpServlet {
        
        
    private static final long serialVersionUID = 1L;
        
    private static Logger log = Logger.getLogger(SoapMsgProcessorServlet.class);
        
        
    public SoapMsgProcessorServlet() {}

        
    public void doPost(HttpServletRequest request, HttpServletResponse response) {

            OutputStream out 
    = null;
            
    try {
                request.setCharacterEncoding(
    "UTF-8");
                Document doc 
    = null;
                doc 
    = new SAXReader().read(request.getReader());
                log.info(doc.asXML());
                
                
    /*保存從soap消息包到數據庫中*/
                GameUser user 
    = setSoapMsgBean(doc);
                String issaveok 
    = saveSoapMoMsg(setSoapMsgBean(doc));        
                String restr 
    = retOptRespPkg(setSoapMsgBean(doc),issaveok);
                
                out 
    = response.getOutputStream();
                out.write(restr.getBytes(
    "UTF8"));
                out.flush();

            }
     catch (IOException e) {
                log.error(e, e);
            }
     catch (Exception e) {
                log.error(e, e);
            }

            
    finally{
                
    if(out!=null){
                    
    try{
                        out.close();
                    }
    catch(IOException e){
                        log.error(e, e);
                    }

                   
                }

            }

        }

        
        
    public void doGet(HttpServletRequest request, HttpServletResponse response)
                
    throws ServletException,
                    IOException 
    {
            doPost(request, response);
        }

        
        
        
    public GameUser setSoapMsgBean(Document doc) {
            
           GameUser bean 
    = new GameUser();            
           Element root 
    = doc.getRootElement();
           
           
    for ( Iterator iter = root.elementIterator(); iter.hasNext(); ) {
                 Element element 
    = (Element) iter.next();
               
    if(element.getName().equals("Body")) 
                   Element MOReqelement
    =element.element("MOReq");
                   
    //遍歷MOReq結點的所有孩子節點,并進行處理
                   for ( Iterator iterInner = MOReqelement.elementIterator(); iterInner.hasNext(); ) {
                        Element elementInner 
    = (Element) iterInner.next();
                      
    //  hm.put(elementInner.getName(), elementInner.getText());
                        if("Msg_Id".equals(elementInner.getName()))
                            bean.setMsgid(elementInner.getText());
                        }

                        
    if("Src_terminal_Id".equals(elementInner.getName()))
                            bean.setSrcterminalid(elementInner.getText());
                        }

                        
    if("Dest_Id".equals(elementInner.getName()))
                            bean.setDestid(elementInner.getText());
                        }

                        
    if("MsgContent".equals(elementInner.getName()))
                            bean.setMsgcontent(elementInner.getText());
                        }

                        
    if("LinkID".equals(elementInner.getName()))
                            bean.setLinkid(elementInner.getText());
                        }

                        
    if("CreateDate".equals(elementInner.getName()))
                            bean.setCreatedate(elementInner.getText());
                        }

                        
    //System.out.println("elementInner.getName()="+elementInner.getName()+"---=="+elementInner.getText());
                   }

               }

           }
     

            
    return bean;
        }

        
        
    /**
         * 保存是否成功 isok為1表示失敗,為0表示成功
         * 
    @param msgbean
         * 
    @return
         
    */

        
    public String  saveSoapMoMsg(GameUser msgbean){
            
            String isok 
    = "1";
            PreparedStatement stmt
    =null;
            String sql 
    = "insert into maintain.gameuserlog(id,msgseq_id,srcterm_id,dest_id,msg_content,linkid,create_date,add_date)" +
                    
    " values(maintain.GAME_USER_LOG_SEQ.Nextval,?,?,?,?,?,?,sysdate)";
            
            
    try {
                stmt 
    = HibernateFilter.getSession().connection().prepareStatement(sql);
                stmt.setString(
    1, msgbean.getMsgid() );
                stmt.setString(
    2, msgbean.getSrcterminalid());
                stmt.setString(
    3, msgbean.getDestid());
                stmt.setString(
    4, msgbean.getMsgcontent());
                stmt.setString(
    5, msgbean.getLinkid());
                stmt.setString(
    6, msgbean.getCreatedate());
                stmt.executeUpdate();
                HibernateFilter.getSession().connection().commit();
                
                isok 
    = "0";
            }
     catch (HibernateException e) {
                e.printStackTrace();
            }
     catch (SQLException e) {
                e.printStackTrace();
            }
    finally{
                
    if (stmt != null)
                
    {
                    
    try {
                        stmt.close();
                    }
     catch (SQLException e) {
                        
    // TODO Auto-generated catch block
                        e.printStackTrace();
                    }

                }
       
            }

            
    return isok;        
        }

        
        
    /**
         * 操作返回響應包
         * 
    @param userid
         * 
    @return
         
    */

        
    public static String  retOptRespPkg(GameUser user,String flag){
            
            StringBuffer sb 
    = new StringBuffer();
            sb.append(
    "<?xml version = \"1.0\"  encoding=\"UTF-8\" ?>\r\n");
            sb.append(
    "<SOAP-ENV:Envelope\r\n");
            sb.append(
    "xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'\r\n");      
            sb.append(
    "xmlns:xsd='http://www.w3.org/2001/XMLSchema'\r\n");  
            sb.append(
    "xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/'\r\n");        
            sb.append(
    "xmlns:SOAP-ENC='http://schemas.xmlsoap.org/soap/encoding/' >\r\n");                  
            sb.append(
    "<SOAP-ENV:Header>\r\n");
            sb.append(
    "</SOAP-ENV:Header>\r\n");       
            sb.append(
    "<SOAP-ENV:Body>\r\n");    
            sb.append(
    "<MOResp xmlns='http://www.infuns.com/IFXML/IFXMLSchema.xsd/'>\r\n");       
            sb.append(
    "<Msg_Id>"+user.getMsgid()+"</Msg_Id>\r\n");
            sb.append(
    "<LinkID>"+user.getLinkid()+"</LinkID>\r\n");
            sb.append(
    "<hRet>"+flag+"</hRet><!-- 接收解析成功:0; 接收解析失敗:1;-->\r\n");
            sb.append(
    "</MOResp>\r\n");      
            sb.append(
    "</SOAP-ENV:Body>\r\n"); 
            sb.append(
    "</SOAP-ENV:Envelope>");  
            
            
    return sb.toString();
        }
     
        

        
        
    /**
          * 遍歷整個XML文件,獲取所有節點的值與其屬性的值,并放入HashMap中
          * 
    @param filename String 待遍歷的XML文件(相對路徑或者絕對路徑)
          * 
    @param hm       HashMap 存放遍歷結果,格式:<nodename,nodevalue>或者<nodename+attrname,attrvalue>
          
    */

         
    public static void iterateWholeXML(){
             
          HashMap
    <String,String> hm = new HashMap<String,String>();
          SAXReader saxReader 
    = new SAXReader();
          
    try {
               Document document 
    = saxReader.read(new File("D:\\code\\trunk_lxw\\lxwSrc\\cn\\allinpalm\\sns\\app\\web\\mxt\\game\\test.xml"));
               Element root 
    = document.getRootElement();

               
    for ( Iterator iter = root.elementIterator(); iter.hasNext(); ) {
                     Element element 
    = (Element) iter.next();
                   
    if(element.getName().equals("Body")) 
                       Element MOReqelement
    =element.element("MOReq");
                       
    //遍歷MOReq結點的所有孩子節點,并進行處理
                       for ( Iterator iterInner = MOReqelement.elementIterator(); iterInner.hasNext(); ) {
                            Element elementInner 
    = (Element) iterInner.next();
                            hm.put(elementInner.getName(), elementInner.getText());
                            System.out.println(
    "elementInner.getName()="+elementInner.getName()+"---=="+elementInner.getText());
                       }

                   }

               }

          }
     catch (DocumentException e) {
           
    // TODO Auto-generated catch block
           e.printStackTrace();
          }

         }


         
        
    public static void main(String[] args) {
            
    //iterateWholeXML();
            StringBuffer sb = new StringBuffer();
            sb.append(
    "<?xml version = \"1.0\"  encoding=\"UTF-8\" ?>\r\n");
            sb.append(
    "<SOAP-ENV:Envelope\r\n");
            sb.append(
    "xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'\r\n");      
            sb.append(
    "xmlns:xsd='http://www.w3.org/2001/XMLSchema'\r\n");  
            sb.append(
    "xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/'\r\n");        
            sb.append(
    "xmlns:SOAP-ENC='http://schemas.xmlsoap.org/soap/encoding/' >\r\n");                  
            sb.append(
    "<SOAP-ENV:Header>\r\n");
            sb.append(
    "</SOAP-ENV:Header>\r\n");       
            sb.append(
    "<SOAP-ENV:Body>\r\n");    
            sb.append(
    "<MOReq xmlns='http://www.infuns.com/IFXML/IFXMLSchema.xsd/'>\r\n");       
            sb.append(
    "<Msg_Id>2e5fb10009610029</Msg_Id>\r\n");
            sb.append(
    "<Dest_Id>33000015</Dest_Id>\r\n");
            sb.append(
    "<Src_terminal_Id>15810912222</Src_terminal_Id>\r\n");
            sb.append(
    "<MsgContent>YXBY15 07M003155 IF5</MsgContent>\r\n");        
            sb.append(
    "<LinkID>23590311470360662046</LinkID>\r\n");
            sb.append(
    "<CreateDate>2006-08-01 00:00:00.000</CreateDate>\r\n");
            sb.append(
    "</MOReq>\r\n");      
            sb.append(
    "</SOAP-ENV:Body>\r\n"); 
            sb.append(
    "</SOAP-ENV:Envelope>"); 
               
            log.info(HttpSend.connectURL(
    "http://localhost:6060/SoapMsgProcessorServlet",sb.toString()));

        }

        
        
    }


    public class HttpSend {
        
        
    private static Logger log = Logger.getLogger(HttpSend.class);
        
        
    public static String connectURL(String dest_url, String commString)
        
    {
            log.debug(
    "send data to Url:"+dest_url);
            String rec_string 
    = "";
            URL url 
    = null;
            OutputStream out 
    = null;
            BufferedReader rd 
    = null;
            HttpURLConnection urlconn 
    = null;
            
    try
            
    {
                url 
    = new URL(dest_url);
                urlconn 
    = (HttpURLConnection) url.openConnection();
                urlconn.setReadTimeout(
    5000);
                urlconn.setRequestProperty(
    "content-type""text/plain");
                urlconn.setRequestMethod(
    "POST");
                urlconn.setDoInput(
    true);
                urlconn.setDoOutput(
    true);
                out 
    = urlconn.getOutputStream();
                out.write(commString.getBytes(
    "UTF8"));
                out.flush();
                out.close();
                rd 
    = new BufferedReader(new InputStreamReader(
                        urlconn.getInputStream()));
                StringBuffer sb 
    = new StringBuffer();
                
    int ch;
                
    while ((ch = rd.read()) > -1){
    //                System.out.println(ch);
                    sb.append((char) ch);
                }

                rec_string 
    = sb.toString();
                log.info(
    "resp="+rec_string);
                rd.close();
                urlconn.disconnect();
            }

            
    catch (Exception e)
            
    {
                log.error(e, e);
                
    return "";
            }
    finally {
                
    try {
                    
    if (out != null{
                        out.close();
                    }

                    
    if (urlconn != null{
                        urlconn.disconnect();
                    }

                    
    if (rd != null{
                        rd.close();
                    }

                }
     catch (Exception e) {
                    log.error(e, e);
                }

            }


            
    return rec_string;
        }


    }

    posted on 2008-05-09 13:25 都市淘沙者 閱讀(1192) 評論(0)  編輯  收藏 所屬分類: Java Basic/Lucene/開源資料

    主站蜘蛛池模板: 在线看无码的免费网站| 狠狠综合久久综合88亚洲| 久久精品成人免费网站| 亚洲AV香蕉一区区二区三区| 亚洲第一中文字幕| 亚洲国产精品自在拍在线播放| 免费人成在线观看69式小视频| 中文字幕久精品免费视频| 香港一级毛片免费看| 亚洲人成网站999久久久综合| 全黄A免费一级毛片| 亚洲综合在线一区二区三区 | 免费成人在线观看| 青青久在线视频免费观看| 国产亚洲福利一区二区免费看| 亚洲一区二区三区久久久久| 亚洲一区免费观看| 在线免费视频一区| 中字幕视频在线永久在线观看免费| 午夜视频在线免费观看| 三级网站在线免费观看| aa午夜免费剧场| 日韩在线观看免费完整版视频| 亚洲AV成人无码网站| 亚洲精品无AMM毛片| 亚洲另类自拍丝袜第五页| 亚洲中文字幕无码av永久| 亚洲一区中文字幕在线观看| 亚洲最大在线观看| 亚洲国产成人精品电影| 亚洲日本香蕉视频| 亚洲一区二区三区四区视频| 亚洲a级在线观看| 亚洲AV无码无限在线观看不卡| 亚洲一区中文字幕| 亚洲欧美国产日韩av野草社区| 亚洲欧美中文日韩视频| 亚洲成在人线aⅴ免费毛片| 久久精品熟女亚洲av麻豆| 国产成人综合亚洲一区| 一区二区三区免费电影|