podl005servlet.java

来自「WAP PUSH后台源码,WAP PUSH后台源码」· Java 代码 · 共 197 行

JAVA
197
字号
package com.sxit.dl;

/**
 * <p>类名: PODL005Servlet</p>
 * <p>功能: 内蒙联通WAP PUSH对SP接口(实时)</p>
 * <p>公司: 深讯信科</p>
 * @程序 zwx
 * @日期 2005-12-15
 * @修改纪录
 */

import java.sql.*;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.sxit.push.*;
import com.sxit.pim.push.*;
import com.sxit.pim.cp.*;
import com.sxit.pim.channel.*;
import com.sxit.common.*;
import javax.xml.parsers.*;
import org.w3c.dom.Document;

public class PODL005Servlet
    extends HttpServlet {

    public void doPost(HttpServletRequest request, HttpServletResponse
                       response) throws ServletException, IOException {
        //request.setCharacterEncoding("utf-8");
        ServletInputStream in;
        PrintWriter out;
        in = request.getInputStream();
        String FromMdn = "";
        String ToMdn = "";
        String ProductCode = "";
        String TransactionID = "";
        String Title = "";
        String Url = "";
        String Result = "";
        String su_result = "1003";
        String ip = request.getRemoteAddr();
        System.out.println("WAP PUSH请求:" +
                           new Timestamp(System.currentTimeMillis()) + "=ip=" +
                           ip);
        Connection con = ConnPoolHandler.getConnection();
        int rowcount = 0;
        try {
            rowcount = Tcp.count_ip(con, ip);
            if (rowcount != 0) {
                //IP已认证
                try {
                    //-------------------解析文件-------------------
                    DocumentBuilderFactory factory = DocumentBuilderFactory.
                        newInstance();
                    DocumentBuilder builder = factory.newDocumentBuilder();
                    Document document = builder.parse(in);
                    //System.out.println("核对业务代码");
                    ProductCode = document.getElementsByTagName("ProductCode").
                        item(
                        0).
                        getFirstChild().getNodeValue();
                    //System.out.println("get ProductCode=" + ProductCode);
                    TransactionID = document.getElementsByTagName(
                        "TransactionID").item(0).getFirstChild().getNodeValue();
                    //System.out.println("get TransactionID=" + TransactionID);
                    //--------------------核对业务代码--------------
                    int sp_id = 0;
                    Tcp tcp = new Tcp();
                    sp_id = tcp.create1(con, ip);
                    //System.out.println("sp_id1=" + sp_id);
                    int sp_id2 = 0;
                    Tchannel tch = new Tchannel();
                    sp_id2 = tch.create9(con, ProductCode);
                    //System.out.println("sp_id2=" + sp_id2);
                    if (sp_id == sp_id2) {
                        //--------消息包处理--------
                        ToMdn = document.getElementsByTagName("ToMdn").item(0).
                            getFirstChild().getNodeValue();
                        System.out.println("get ToMdn=" + ToMdn);
                        FromMdn = document.getElementsByTagName("SPCode").item(
                            0).
                            getFirstChild().getNodeValue();
                        System.out.println("get FromMdn=" + FromMdn);
                        Title = document.getElementsByTagName("Content").item(0).
                            getFirstChild().getNodeValue();
                        //System.out.println("get Title=" + Title);
                        Url = document.getElementsByTagName("Url").item(0).
                            getFirstChild().getNodeValue();
                        //System.out.println("get Url=" + Url);
                        //---------发送----------
                        try {
                            PushHQ2LCService service = new
                                PushHQ2LCServiceLocator();
                            PushHQ2LC pushHQ = service.getPushService();
                            Result = pushHQ.pushMSG2LC("010", "010", FromMdn,
                                ToMdn,
                                Title, Url);
                            System.out.println("RESULT=" + Result);
                            //13316996852:1001:The request has been accepted for processing
                            int i1 = Result.indexOf(":");
                            int i2 = Result.lastIndexOf(":");
                            String sss = Result.substring(i1 + 1, i2);
                            //System.out.println("sss=" + sss);
                            if (sss.equals("1001"))
                                su_result = "1001";
                            if (sss.equals("-800"))
                                su_result = "1004";
                                //---------发送结果存入数据库---------

                            int id = (int) KeyContainer.getNewSequence(con,
                                "tpushid");
                            Tpush.insert(con, id, FromMdn, ToMdn, Title, Url, 1,
                                         sss, ProductCode, TransactionID, 61);
                            //--------返回消息---------
                            out = response.getWriter();
                            out.println(
                                "<?xml version=\"1.0\" encoding=\"GB2312\"?>");
                            out.println("<ResponsePushInfo>");
                            out.println("<TransactionID>" + TransactionID +
                                        "</TransactionID>");
                            out.println("<Result>" + su_result + "</Result>");
                            out.println("</ResponsePushInfo>");
                            out.close();
                        }
                        catch (Exception e) {
                            System.out.println(e);
                            out = response.getWriter();
                            out.println(
                                "<?xml version=\"1.0\" encoding=\"GB2312\"?>");
                            out.println("<ResponsePushInfo>");
                            out.println("<TransactionID>" + TransactionID +
                                        "</TransactionID>");
                            out.println("<Result>1002</Result>");
                            out.println("</ResponsePushInfo>");
                            out.close();
                        }
                    }
                    else {
                        //业务代码错误
                        out = response.getWriter();
                        out.println(
                            "<?xml version=\"1.0\" encoding=\"GB2312\"?>");
                        out.println("<ResponsePushInfo>");
                        out.println("<TransactionID>" + TransactionID +
                                    "</TransactionID>");
                        out.println("<Result>1002</Result>");
                        out.println("</ResponsePushInfo>");
                        out.close();
                    }
                }
                catch (Exception e) {
                    e.printStackTrace();
                    System.out.println("XML数据包格式不对"); //XML数据包格式不对
                    out = response.getWriter();
                    out.println("<?xml version=\"1.0\" encoding=\"GB2312\"?>");
                    out.println("<ResponsePushInfo>");
                    out.println("<Result>1002</Result>");
                    out.println("</ResponsePushInfo>");
                    out.close();
                }
                System.out.println("-------push over--------");
            }
            else {
                System.out.println("客户端IP没有通过鉴权"); //客户端IP没有通过鉴权
                out = response.getWriter();
                out.println("<?xml version=\"1.0\" encoding=\"GB2312\"?>");
                out.println("<ResponsePushInfo>");
                out.println("<Result>1002</Result>");
                out.println("</ResponsePushInfo>");
                out.close();
            }
        }
        catch (SQLException e) {
            System.out.println(e);
            out = response.getWriter();
            out.println("<?xml version=\"1.0\" encoding=\"GB2312\"?>");
            out.println("<ResponsePushInfo>");
            out.println("<Result>1002</Result>");
            out.println("</ResponsePushInfo>");
            out.close();
        }
        finally {
            in.close();
            ConnPoolHandler.closeConnection(con);
        }

    }

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

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?