⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mm7sender.java

📁 中国移动彩信中心MM7接口统一API mm7api
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
          FinerBuffer.append("[Message_Type=MM7RSErrorRes]");
        }
        InfoBuffer.append("[Comments={" + res.getStatusCode() + ";" +
                          res.getStatusText() + "}]\r\n");
        FinerBuffer.append("[Comments={" + res.getStatusCode() + ";" +
                           res.getStatusText() + "}]\r\n");
        int envbeg = baos.toString().indexOf(MMConstants.BEGINXMLFLAG);
        int envend = baos.toString().indexOf("</env:Envelope>");
        if (envbeg > 0 && envend > 0)
          env = baos.toString().substring(envbeg);
        InfoBuffer.append(env);
        FinerBuffer.append(env);

        Infobaos.write(InfoBuffer.toString().getBytes());
        Finerbaos.write(InfoBuffer.toString().getBytes());
        Finerbaos.write(FinerBuffer.toString().getBytes());
        /*************/

        int LogLevel = mm7Config.getLogLevel();
        if (LogLevel > 0) {
          String LogPath = mm7Config.getLogPath();
          int LogNum = mm7Config.getLogNum();
          int LogInterval = mm7Config.getLogInterval();
          int LogSize = mm7Config.getLogSize();
          long Interval = System.currentTimeMillis() - LogTimeBZ;
          String sTimeNow = sdf.format(new Date(System.currentTimeMillis()));
          long timeNow, timeFile = 0;
          timeNow = sdf.parse(sTimeNow).getTime();
          if (logFileName.length() > 0) {
            File logFile = new File(logFileName);
            int index1 = logFileName.indexOf(mm7Config.getMmscId() + "_");
            int index11 = index1 + mm7Config.getMmscId().length() + 1;
            int index2 = logFileName.indexOf(".", index11);
            String sTimeFile = logFileName.substring(index1 +
                mm7Config.getMmscId().length() + 1, index2);
            timeFile = sdf.parse(sTimeFile).getTime();

            if (timeNow - timeFile > (long) LogInterval * 60 * 1000) {
              N = 1;
              this.deleteFile(LogPath, LogNum, mm7Config.getMmscId());
              logFileName = LogPath + "/" + mm7Config.getMmscId() + "_" +
                  sTimeNow + "." + df.format(N) + ".log";
            }
            else {
              if (logFile.length() > LogSize * 1024) {
                if (N < LogNum)
                  N++;
                else
                  N = 1;
                this.deleteFile(LogPath, LogNum, mm7Config.getMmscId());
                logFileName = LogPath + "/" + mm7Config.getMmscId() + "_" +
                    sTimeFile + "." + df.format(N) + ".log";
              }
            }
          }
          else {
            N = 1;
            this.deleteFile(LogPath, LogNum, mm7Config.getMmscId());
            logFileName = LogPath + "/" + mm7Config.getMmscId() + "_" +
                sTimeNow +
                "." + df.format(N) + ".log";
          }
          switch (LogLevel) {
            case 1:
              try {
                FileOutputStream fos = new FileOutputStream(logFileName, true);
                fos.write(Severebaos.toByteArray());
                fos.close();
                SevereBuffer = new StringBuffer();
              }
              catch (IOException ioe) {
                ioe.printStackTrace();
              }
              break;
            case 2:
              break;
            case 3:
              try {
                FileOutputStream fos = new FileOutputStream(logFileName, true);
                fos.write(Infobaos.toByteArray());
                fos.close();
                Infobaos.reset();
              }
              catch (IOException ioe) {
                ioe.printStackTrace();
              }
              break;
            case 4:
              break;
            case 6:
              try {
                FileOutputStream fos = new FileOutputStream(logFileName, true);
                fos.write(Finerbaos.toByteArray());
                fos.close();
                Finerbaos = new ByteArrayOutputStream();
              }
              catch (IOException ioe) {
                ioe.printStackTrace();
              }
              break;
            case 7:
              break;
            default:
              break;
          }
        }
      }
      return res;
    }
    catch(Exception e){
      MM7RSErrorRes ErrorRes = new MM7RSErrorRes();
      e.printStackTrace();
      ErrorRes.setStatusCode(-100);
      ErrorRes.setStatusText("系统错误!原因:"+e);
      return ErrorRes;
    }
  }

  private void deleteFile(String logpath,int lognum,String MMSCID)
  {
    File parfile = new File(logpath);
    if(parfile.isDirectory())
    {
      File[] subfile = parfile.listFiles();
      List list = new ArrayList();
      for (int i = 0; i < subfile.length; i++) {
        String name = subfile[i].getName();
        if (name.indexOf(MMSCID) >= 0) {
          list.add(name);
        }
      }
      if(list.size() >= lognum)
      {
        int deleteLength = list.size()-lognum+1;
        Comparator comp = Collections.reverseOrder();
        Collections.sort(list, comp);
        for (int i = list.size()-deleteLength; i < list.size(); i++) {
          String strfile = (String) list.get(i);
          File ff = new File(logpath + "/" + strfile);
          ff.delete();
        }
      }
    }
  }

  private byte[] getContent(MM7VASPReq mm7VASPReq)
  {
    byte[] b = null;
    SOAPEncoder encoder = new SOAPEncoder(mm7Config);
    encoder.setMessage(mm7VASPReq);
    try{
      encoder.encodeMessage();
    }catch(Exception e){
      System.err.println(e);
    }
    b = encoder.getMessage();
    return(b);
  }
  /**进行BASE64编码*/
  public static String getBASE64(String value)
  {
    if(value == null)
      return null;
    BASE64Encoder BaseEncode = new BASE64Encoder();
    return(BaseEncode.encode(value.getBytes()));
  }

  private MM7RSRes parseXML()
  {
    SAXBuilder sax = new SAXBuilder();
    SevereBuffer.append("recv="+baos.toString()+"\r\n");
    try
    {
      if(baos.toString()== null || baos.toString().equals(""))
      {
        MM7RSErrorRes errRes = new MM7RSErrorRes();
        errRes.setStatusCode(-107);
        errRes.setStatusText("错误!接收到的消息为空!");
        SevereBuffer.append("[Message_Type=MM7RSErrorRes]");
        SevereBuffer.append("[Comments={-107;错误!接收到的消息为空!}]");
        return errRes;
      }
      else
      {
        //System.out.println("baos="+baos.toString());
        int index = -1;
        int xmlend = -1;
        index = baos.toString().indexOf(MMConstants.BEGINXMLFLAG);
        if(index == -1)
        {
          int httpindex = -1;
          httpindex = baos.toString().indexOf("HTTP1.1");
          String strstat = "";
          if(httpindex>=0)
          {
            int index11 = baos.toString().indexOf("\r\n");
            strstat = baos.toString().substring(httpindex+7,index11);
          }
          MM7RSErrorRes err = new MM7RSErrorRes();
          err.setStatusCode(-108);
          if(!strstat.equals(""))
            err.setStatusText(strstat);
          else
            err.setStatusText("Bad Request");
          SevereBuffer.append("[Message_Type=MM7RSErrorRes]");
          SevereBuffer.append("[Comments={"+err.getStatusCode()+";"+err.getStatusText()+"}]");
          return err;
        }
        String xmlContent = baos.toString().substring(index,baos.toString().length());
        String xmlContentTemp = "";
        byte[] byteXML = baos.toByteArray();
        int index1 = xmlContent.indexOf("encoding=\"UTF-8\"");
        if(index1 > 0)
        {
          xmlContentTemp = new String(byteXML,"UTF-8");
          int xmlind = xmlContentTemp.indexOf(MMConstants.BEGINXMLFLAG);
          int xmlindend = xmlContentTemp.lastIndexOf("Envelope>");
          if(xmlindend >0)
          {
            xmlContentTemp = xmlContentTemp.substring(xmlind,xmlindend+9);
            String xml = xmlContentTemp.substring(0, index1) +
                "encoding=\"GB2312\"" +
                xmlContentTemp.substring(index1 + "encoding=\"UTF-8\"".length());
            xmlContent = xml;
          }
        }
        SevereBuffer.append("!xmlContent="+xmlContent+"!\r\n");
        ByteArrayInputStream in = new ByteArrayInputStream(xmlContent.getBytes());
        Document doc = sax.build(in);
        Element root = doc.getRootElement();
        Element first = (Element) root.getChildren().get(0);
        if(first.getName().equalsIgnoreCase("body"))
        {
          Element Message = (Element) first.getChildren().get(0);
          if(Message.getName().equals("Fault"))
          {
            MM7RSErrorRes errRes = new MM7RSErrorRes();
            errRes.setStatusCode( -110);
            errRes.setStatusText("Server could not fulfill the request");
            SevereBuffer.append("[Message_Type=MM7RSErrorRes]");
            SevereBuffer.append(
                "[Comments={-110;Server could not fulfill the request}]");
            return errRes;
          }
          else
          {
            MM7RSErrorRes errRes = new MM7RSErrorRes();
            errRes.setStatusCode( -111);
            errRes.setStatusText("Server error");
            SevereBuffer.append("[Message_Type=MM7RSErrorRes]");
            SevereBuffer.append("[Comments={-111;Server error}]");
            return errRes;
          }
        }
        else{
          Element envBody = (Element) root.getChildren().get(1);
          Element Message = (Element) envBody.getChildren().get(0);
          Element envHeader = (Element) root.getChildren().get(0);
          Element transID = (Element) envHeader.getChildren().get(0);
          String transactionID = transID.getTextTrim();
          int size = Message.getChildren().size();
          SevereBuffer.append("\r\nMessage.getName()=" + Message.getName() +
                              "\r\n");
          if (Message.getName().equals("SubmitRsp")) {
            MM7SubmitRes submitRes = new MM7SubmitRes();
            submitRes.setTransactionID(transactionID);
            for (int i = 0; i < size; i++) {
              Element ele = (Element) Message.getChildren().get(i);
              if (ele.getName().equals(MMConstants.STATUS)) {
                for (int j = 0; j < ele.getChildren().size(); j++) {
                  Element subEle = (Element) ele.getChildren().get(j);
                  if (subEle.getName().equals(MMConstants.STATUSCODE))
                    submitRes.setStatusCode(Integer.parseInt(subEle.getTextTrim()));
                  else if (subEle.getName().equals(MMConstants.STATUSTEXT))
                    submitRes.setStatusText(subEle.getTextTrim());
                  else if (subEle.getName().equals(MMConstants.STATUSDETAIL))
                    submitRes.setStatusDetail(subEle.getTextTrim());
                }
              }
              else if (ele.getName().equals(MMConstants.MESSAGEID)) {
                submitRes.setMessageID(ele.getTextTrim());
              }
            }
            return submitRes;
          }
          else if (Message.getName().equals("CancelRsp")) {
            MM7CancelRes cancelRes = new MM7CancelRes();
            cancelRes.setTransactionID(transactionID);
            for (int i = 0; i < size; i++) {
              Element ele = (Element) Message.getChildren().get(i);
              if (ele.getName().equals(MMConstants.STATUS)) {
                for (int j = 0; j < ele.getChildren().size(); j++) {
                  Element subEle = (Element) ele.getChildren().get(j);
                  if (subEle.getName().equals(MMConstants.STATUSCODE))
                    cancelRes.setStatusCode(Integer.parseInt(subEle.getTextTrim()));
                  else if (subEle.getName().equals(MMConstants.STATUSTEXT))
                    cancelRes.setStatusText(subEle.getTextTrim());
                  else if (subEle.getName().equals(MMConstants.STATUSDETAIL))
                    cancelRes.setStatusDetail(subEle.getTextTrim());
                }
              }
            }
            return cancelRes;
          }
          else if (Message.getName().equals("ReplaceRsp")) {
            MM7ReplaceRes replaceRes = new MM7ReplaceRes();
            replaceRes.setTransactionID(transactionID);
            for (int i = 0; i < size; i++) {
              Element ele = (Element) Message.getChildren().get(i);
              if (ele.getName().equals(MMConstants.STATUS)) {
                for (int j = 0; j < ele.getChildren().size(); j++) {
                  Element subEle = (Element) ele.getChildren().get(j);
                  if (subEle.getName().equals(MMConstants.STATUSCODE))
                    replaceRes.setStatusCode(Integer.parseInt(subEle.
                        getTextTrim()));
                  else if (subEle.getName().equals(MMConstants.STATUSTEXT))
                    replaceRes.setStatusText(subEle.getTextTrim());
                  else if (subEle.getName().equals(MMConstants.STATUSDETAIL))
                    replaceRes.setStatusDetail(subEle.getTextTrim());
                }
              }
            }
            return replaceRes;
          }
          else {
            MM7RSRes res = new MM7RSRes();
            res.setTransactionID(transactionID);
            for (int i = 0; i < size; i++) {
              Element ele = (Element) Message.getChildren().get(i);
              if (ele.getName().equals(MMConstants.STATUS)) {
                for (int j = 0; j < ele.getChildren().size(); j++) {
                  Element subEle = (Element) ele.getChildren().get(j);
                  if (subEle.getName().equals(MMConstants.STATUSCODE))
                    res.setStatusCode(Integer.parseInt(subEle.getTextTrim()));
                  else if (subEle.getName().equals(MMConstants.STATUSTEXT))
                    res.setStatusText(subEle.getTextTrim());
                  else if (subEle.getName().equals(MMConstants.STATUSDETAIL))
                    res.setStatusDetail(subEle.getTextTrim());
                }
              }
            }
            return res;
          }
        }
      }
    }catch(JDOMException jdome)
    {
      MM7RSErrorRes error = new MM7RSErrorRes();
      System.err.print(jdome);
      error.setStatusCode(-109);
      error.setStatusText("XML解析错误!原因:"+jdome);
      SevereBuffer.append("[Message_Type=MM7RSErrorRes]");
      SevereBuffer.append("[Comments={-109;"+error.getStatusText()+"}]");
      return error;
    }

⌨️ 快捷键说明

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