Log4j 生成 xml soap 流

29 篇文章 0 订阅
25 篇文章 0 订阅

/**
 *May 10, 2007
 * Zhou JianGuo
 * 小白
 * 中国电信上海技术研究院
 * MSN:zhuojianguo_leo@hotmail.com
 */
package com.telecom.soap.action;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;

import javax.servlet.http.HttpServletResponse;

import org.dom4j.Document;

import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;

import com.procedure.hibernate.dao.GenticDAOFactory;
import com.procedure.hibernate.oracle10.getHibernateTemplate.model.DeviceInfo;
import com.procedure.hibernate.oracle10.getHibernateTemplate.model.DeviceInfoFtp;
import com.procedure.hibernate.oracle10.getHibernateTemplate.model.VideoFlat;
import com.telecom.soap.service.SoapService;

/**
 *May 10, 2007
 * Zhou JianGuo
 * 小白
 * 中国电信上海技术研究院
 * MSN:zhuojianguo_leo@hotmail.com
 */
public class XMLPacketWriter extends DefineElement{

 /**
  *
  */
 private XMLPacketWriter() {
  // TODO Auto-generated constructor stub
 }

 public static XMLPacketWriter getInstance()
 {
  return new XMLPacketWriter();
 }
 SoapService soapService;

 /*
  * the xml stream out by Response
  */
 int xmlLength;
 public void createResponse(HttpServletResponse response,String ID)
 {
  xmlLength="<?xml version=/"1.0/" encoding=/"UTF-8/" ?>".getBytes().length+xmlLength;
  System.out.println(xmlLength);
  document = ParseDocument.getInstance().createDocument();
  xmlLength="<IpCam_CfgResponse>".getBytes().length+xmlLength;
  xmlLength="</IpCam_CfgResponse>".getBytes().length+xmlLength;
  System.out.println(xmlLength);
  IpCam_CfgResponse = ParseElement.getInstance().createElement(null, "IpCam_CfgResponse",document);
  xmlLength="<!-********   Zhou JianGuo  ********-->".getBytes().length+xmlLength;
  IpCam_CfgResponse.addComment("********   Zhou JianGuo  ********");
  System.out.println(xmlLength);
  ID="cam14";

  try
  {
   DeviceInfo info=new DeviceInfo();
   VideoFlat sip=new VideoFlat();
   List listInfo=new ArrayList();
   String infoHQL="from DeviceInfo d where d.numb='"+ID+"'";
   listInfo=GenticDAOFactory.getFactory().getInstance().select(infoHQL);
   if(listInfo.size()==1)
   {

    info=(DeviceInfo) listInfo.get(0);
    
    /*
     * SipService
     */
     sip=(VideoFlat) GenticDAOFactory.getFactory().getInstance().findObjectById(VideoFlat.class, info.getVideoFlat().getId());
     xmlLength="<SipService>".getBytes().length+xmlLength;
     xmlLength="</SipService>".getBytes().length+xmlLength;
     System.out.println(xmlLength);
     SipService=ParseElement.getInstance().createElement(IpCam_CfgResponse,"SipService",document);
     xmlLength="<EnableSIPService>".getBytes().length+xmlLength;
     xmlLength="</EnableSIPService>".getBytes().length+xmlLength;
     System.out.println(xmlLength);
     EnableSIPService=ParseElement.getInstance().createElement(SipService,"EnableSIPService",document);
     if(info.getEnable()!=null)
     {
      xmlLength=info.getEnable().getBytes().length+xmlLength;
      ParseElement.getInstance().setText(EnableSIPService, info.getEnable());
     }else
     {
      xmlLength="0".getBytes().length+xmlLength;
      ParseElement.getInstance().setText(EnableSIPService, "0");
     }
     System.out.println(xmlLength);
     xmlLength="<SIPUsername>".getBytes().length+xmlLength;
     xmlLength="</SIPUsername>".getBytes().length+xmlLength;
     SIPUsername=ParseElement.getInstance().createElement(SipService,"SIPUsername",document);
     if(sip.getSipname()!=null)
     {
      xmlLength=sip.getSipname().getBytes().length+xmlLength;
      ParseElement.getInstance().setText(SIPUsername, sip.getSipname());
     }else
     {
      xmlLength="".getBytes().length+xmlLength;
      ParseElement.getInstance().setText(SIPUsername, "");
     }
     System.out.println(xmlLength);
     xmlLength="<SIPPassword>".getBytes().length+xmlLength;
     xmlLength="</SIPPassword>".getBytes().length+xmlLength;
     SIPPassword=ParseElement.getInstance().createElement(SipService,"SIPPassword",document);
     if(sip.getSippassword()!=null)
     {
      xmlLength=sip.getSippassword().getBytes().length+xmlLength;
      ParseElement.getInstance().setText(SIPPassword, sip.getSippassword());
     }else
     {
      xmlLength="".getBytes().length+xmlLength;
      ParseElement.getInstance().setText(SIPPassword, "");
     }
     System.out.println(xmlLength);
     xmlLength="<SIPServerIP>".getBytes().length+xmlLength;
     xmlLength="</SIPServerIP>".getBytes().length+xmlLength;
     SIPServerIP=ParseElement.getInstance().createElement(SipService,"SIPServerIP",document);
     if(sip.getSiparea()!=null)
     {
      xmlLength=sip.getSiparea().getBytes().length+xmlLength;
      ParseElement.getInstance().setText(SIPServerIP, sip.getSiparea());
     }else
     {
      xmlLength="0.0.0.0".getBytes().length+xmlLength;
      ParseElement.getInstance().setText(SIPServerIP, "0.0.0.0");
     }
     System.out.println(xmlLength);
     xmlLength="<SIPServerPort>".getBytes().length+xmlLength;
     xmlLength="</SIPServerPort>".getBytes().length+xmlLength;
     SIPServerPort=ParseElement.getInstance().createElement(SipService,"SIPServerPort",document);
     if(sip.getSipport()!=null)
     {
      xmlLength=sip.getSipport().getBytes().length+xmlLength;
      ParseElement.getInstance().setText(SIPServerPort, sip.getSipport());
     }else
     {
      xmlLength="0".getBytes().length+xmlLength+1;
      ParseElement.getInstance().setText(SIPServerPort, "0");
     }
     System.out.println("SipService="+xmlLength);
     
     /*
      *
      * CamSetting
      */
     xmlLength="<CamSetting>".getBytes().length+xmlLength;
     xmlLength="</CamSetting>".getBytes().length+xmlLength;
     CamSetting=ParseElement.getInstance().createElement(IpCam_CfgResponse,"CamSetting",document);
     xmlLength="<Rotation>".getBytes().length+xmlLength;
     xmlLength="</Rotation>".getBytes().length+xmlLength;
     Rotation=ParseElement.getInstance().createElement(CamSetting,"Rotation",document);
     if(info.getSystemAutoRebootEnable()!=null)
     {
      xmlLength="0".getBytes().length+xmlLength;
      ParseElement.getInstance().setText(Rotation, "0");
     }else
     {
      xmlLength="0".getBytes().length+xmlLength;
      ParseElement.getInstance().setText(Rotation, "0");
     }
     xmlLength="<Location>".getBytes().length+xmlLength;
     xmlLength="</Location>".getBytes().length+xmlLength;
     Location=ParseElement.getInstance().createElement(CamSetting,"Location",document);
     if(info.getSystemAutoRebootTime()!=null)
     {
      xmlLength="0".getBytes().length+xmlLength;
      ParseElement.getInstance().setText(Location, "0");
     }else
     {
      xmlLength="0".getBytes().length+xmlLength;
      ParseElement.getInstance().setText(Location, "0");
     }
     System.out.println("camsetting="+xmlLength);

     /*
      * System
      */
     xmlLength="<SystemSet>".getBytes().length+xmlLength;
     xmlLength="</SystemSet>".getBytes().length+xmlLength;
     SystemSet=ParseElement.getInstance().createElement(IpCam_CfgResponse,"SystemSet",document);
     xmlLength="<SystemAutoRebootEnable>".getBytes().length+xmlLength;
     xmlLength="</SystemAutoRebootEnable>".getBytes().length+xmlLength;
     SystemAutoRebootEnable=ParseElement.getInstance().createElement(SystemSet,"SystemAutoRebootEnable",document);
     if(info.getSystemAutoRebootEnable()!=null)
     {
      xmlLength=info.getSystemAutoRebootEnable().getBytes().length+xmlLength;
      ParseElement.getInstance().setText(SystemAutoRebootEnable, info.getSystemAutoRebootEnable());
     }else
     {
      xmlLength="0".getBytes().length+xmlLength+1;
      ParseElement.getInstance().setText(SystemAutoRebootEnable, "0");
     }
     xmlLength="<SystemAutoRebootTime>".getBytes().length+xmlLength;
     xmlLength="</SystemAutoRebootTime>".getBytes().length+xmlLength;
     SystemAutoRebootTime=ParseElement.getInstance().createElement(SystemSet,"SystemAutoRebootTime",document);
     SimpleDateFormat now =new SimpleDateFormat("hh:mm:ss");
     String rebootTime = now.format(info.getSystemAutoRebootTime());
     if(info.getSystemAutoRebootTime()!=null)
     {
      xmlLength=rebootTime.getBytes().length+xmlLength;
      ParseElement.getInstance().setText(SystemAutoRebootTime, rebootTime);
     }else
     {
      xmlLength="00:00:01".getBytes().length+xmlLength;
      ParseElement.getInstance().setText(SystemAutoRebootTime, "00:00:01");
     }
     System.out.println("system="+xmlLength);
     
     /*
      * FTP
      */
     DeviceInfoFtp DeviceInfoFtp=new DeviceInfoFtp();
     List DeviceInfoFtpList=new ArrayList();
     DeviceInfoFtpList=(ArrayList) GenticDAOFactory.getFactory().getInstance().select("from DeviceInfoFtp f where f.deviceInfo.id='"+info.getId()+"'");
     if(DeviceInfoFtpList.size()==1)
     {
      DeviceInfoFtp=(DeviceInfoFtp) DeviceInfoFtpList.get(0);
      xmlLength="<FTPUpLoad>".getBytes().length+xmlLength;
      xmlLength="</FTPUpLoad>".getBytes().length+xmlLength;
      FTPUpLoad=ParseElement.getInstance().createElement(IpCam_CfgResponse,"FTPUpLoad",document);
      xmlLength="<EnableFTPService>".getBytes().length+xmlLength;
      xmlLength="</EnableFTPService>".getBytes().length+xmlLength;
      EnableFTPService=ParseElement.getInstance().createElement(FTPUpLoad,"EnableFTPService",document);
      if(DeviceInfoFtp.getVideoFtp().getEnable()!=null)
      {
       xmlLength=DeviceInfoFtp.getVideoFtp().getEnable().getBytes().length+xmlLength;
       ParseElement.getInstance().setText(EnableFTPService, DeviceInfoFtp.getVideoFtp().getEnable());
      }else
      {
       xmlLength="0".getBytes().length+xmlLength;
       ParseElement.getInstance().setText(EnableFTPService, "0");
      }
      xmlLength="<Ftp_Server>".getBytes().length+xmlLength;
      xmlLength="</Ftp_Server>".getBytes().length+xmlLength;
      Ftp_Server=ParseElement.getInstance().createElement(FTPUpLoad,"Ftp_Server",document);
      if(DeviceInfoFtp.getVideoFtp().getServer()!=null)
      {
       xmlLength=DeviceInfoFtp.getVideoFtp().getServer().getBytes().length+xmlLength;
       ParseElement.getInstance().setText(Ftp_Server, DeviceInfoFtp.getVideoFtp().getServer());
      }else
      {
       xmlLength="0.0.0.0".getBytes().length+xmlLength;
       ParseElement.getInstance().setText(Ftp_Server, "0.0.0.0");
      }
      xmlLength="<Ftp_Port>".getBytes().length+xmlLength;
      xmlLength="</Ftp_Port>".getBytes().length+xmlLength;
      Ftp_Port=ParseElement.getInstance().createElement(FTPUpLoad,"Ftp_Port",document);
      if(DeviceInfoFtp.getVideoFtp().getPort()!=null)
      {
       xmlLength= DeviceInfoFtp.getVideoFtp().getPort().getBytes().length+xmlLength;
       ParseElement.getInstance().setText(Ftp_Port, DeviceInfoFtp.getVideoFtp().getPort());
      }else
      {
       xmlLength="0".getBytes().length+xmlLength;
       ParseElement.getInstance().setText(Ftp_Port, "0");
      }
      xmlLength="<Ftp_UserAccount>".getBytes().length+xmlLength;
      xmlLength="</Ftp_UserAccount>".getBytes().length+xmlLength;
      Ftp_UserAccount=ParseElement.getInstance().createElement(FTPUpLoad,"Ftp_UserAccount",document);
      if(DeviceInfoFtp.getVideoFtp().getAccount()!=null)
      {
       xmlLength=DeviceInfoFtp.getVideoFtp().getAccount().getBytes().length+xmlLength;
       ParseElement.getInstance().setText(Ftp_UserAccount, DeviceInfoFtp.getVideoFtp().getAccount());
      }else
      {
       xmlLength="".getBytes().length+xmlLength;
       ParseElement.getInstance().setText(Ftp_UserAccount, "");
      }
      xmlLength="<Ftp_Passwd>".getBytes().length+xmlLength;
      xmlLength="</Ftp_Passwd>".getBytes().length+xmlLength;
      Ftp_Passwd=ParseElement.getInstance().createElement(FTPUpLoad,"Ftp_Passwd",document);
      if(DeviceInfoFtp.getVideoFtp().getPassword()!=null)
      {
       xmlLength=DeviceInfoFtp.getVideoFtp().getPassword().getBytes().length+xmlLength;
       ParseElement.getInstance().setText(Ftp_Passwd, DeviceInfoFtp.getVideoFtp().getPassword());
      }else
      {
       xmlLength="".getBytes().length+xmlLength;
       ParseElement.getInstance().setText(Ftp_Passwd, "");
      }
      xmlLength="<Ftp_Mode>".getBytes().length+xmlLength;
      xmlLength="</Ftp_Mode>".getBytes().length+xmlLength;
      Ftp_Mode=ParseElement.getInstance().createElement(FTPUpLoad,"Ftp_Mode",document);
      if(DeviceInfoFtp.getVideoFtp().getFtpmode()!=null)
      {
       xmlLength=DeviceInfoFtp.getVideoFtp().getFtpmode().getBytes().length+xmlLength;
       ParseElement.getInstance().setText(Ftp_Mode, DeviceInfoFtp.getVideoFtp().getFtpmode());
      }else
      {
       xmlLength="".getBytes().length+xmlLength;
       ParseElement.getInstance().setText(Ftp_Mode, "");
      }
     }else
     {
      XMLPacketWriter.getInstance().createErrorResponse(response,"SipService407");//数据对象不唯一
     }
     
     System.out.println("ftp="+xmlLength);
     

     /*
      * FTPConfig
      */
     xmlLength="<FTPConfigFile>".getBytes().length+xmlLength;
     xmlLength="</FTPConfigFile>".getBytes().length+xmlLength;
     FTPConfigFile=ParseElement.getInstance().createElement(IpCam_CfgResponse,"FTPConfigFile",document);
     xmlLength="<EnableUpDate>".getBytes().length+xmlLength;
     xmlLength="</EnableUpDate>".getBytes().length+xmlLength;
     EnableUpDate=ParseElement.getInstance().createElement(FTPConfigFile,"EnableUpDate",document);
     SimpleDateFormat simpaleDate =new SimpleDateFormat("yyyy-MM-dd");
     Date date=new Date();
     String upDate = simpaleDate.format(date);
     xmlLength=upDate.getBytes().length+xmlLength;
     ParseElement.getInstance().setText(EnableUpDate, upDate);
     xmlLength="<Ftp_Server>".getBytes().length+xmlLength;
     xmlLength="</Ftp_Server>".getBytes().length+xmlLength;
     Ftp_Server=ParseElement.getInstance().createElement(FTPConfigFile,"Ftp_Server",document);
     if(DeviceInfoFtp.getVideoFtp().getServer()!=null)
     {
      xmlLength=DeviceInfoFtp.getVideoFtp().getServer().getBytes().length+xmlLength;
      ParseElement.getInstance().setText(Ftp_Server, DeviceInfoFtp.getVideoFtp().getServer());
     }else
     {
      xmlLength="0.0.0.0".getBytes().length+xmlLength;
      ParseElement.getInstance().setText(Ftp_Server, "0.0.0.0");
     }
     xmlLength="<Ftp_Port>".getBytes().length+xmlLength;
     xmlLength="</Ftp_Port>".getBytes().length+xmlLength;
     Ftp_Port=ParseElement.getInstance().createElement(FTPConfigFile,"Ftp_Port",document);
     if(DeviceInfoFtp.getVideoFtp().getPort()!=null)
     {
      xmlLength=DeviceInfoFtp.getVideoFtp().getPort().getBytes().length+xmlLength;
      ParseElement.getInstance().setText(Ftp_Port, DeviceInfoFtp.getVideoFtp().getPort());
     }else
     {
      xmlLength="".getBytes().length+xmlLength;
      ParseElement.getInstance().setText(Ftp_Port, "");
     }
     xmlLength="<Ftp_UserAccount>".getBytes().length+xmlLength;
     xmlLength="</Ftp_UserAccount>".getBytes().length+xmlLength;
     Ftp_UserAccount=ParseElement.getInstance().createElement(FTPConfigFile,"Ftp_UserAccount",document);
     if(DeviceInfoFtp.getVideoFtp().getAccount()!=null)
     {
      xmlLength=DeviceInfoFtp.getVideoFtp().getAccount().getBytes().length+xmlLength;
      ParseElement.getInstance().setText(Ftp_UserAccount, DeviceInfoFtp.getVideoFtp().getAccount());
     }else
     {
      xmlLength="".getBytes().length+xmlLength;
      ParseElement.getInstance().setText(Ftp_UserAccount, "");
     }
     xmlLength="<Ftp_Passwd>".getBytes().length+xmlLength;
     xmlLength="</Ftp_Passwd>".getBytes().length+xmlLength;
     Ftp_Passwd=ParseElement.getInstance().createElement(FTPConfigFile,"Ftp_Passwd",document);
     if(DeviceInfoFtp.getVideoFtp().getPassword()!=null)
     {
      xmlLength=DeviceInfoFtp.getVideoFtp().getPassword().getBytes().length+xmlLength;
      ParseElement.getInstance().setText(Ftp_Passwd, DeviceInfoFtp.getVideoFtp().getPassword());
     }else
     {
      xmlLength="".getBytes().length+xmlLength;
      ParseElement.getInstance().setText(Ftp_Passwd, "");
     }
     xmlLength="<Ftp_Mode>".getBytes().length+xmlLength;
     xmlLength="</Ftp_Mode>".getBytes().length+xmlLength;
     Ftp_Mode=ParseElement.getInstance().createElement(FTPConfigFile,"Ftp_Mode",document);
     if(DeviceInfoFtp.getVideoFtp().getFtpmode()!=null)
     {
      xmlLength=DeviceInfoFtp.getVideoFtp().getFtpmode().getBytes().length+xmlLength;
      ParseElement.getInstance().setText(Ftp_Mode, DeviceInfoFtp.getVideoFtp().getFtpmode());
     }else
     {
      xmlLength="".getBytes().length+xmlLength;
      ParseElement.getInstance().setText(Ftp_Mode, "");
     }
     xmlLength="<DownloadPath>".getBytes().length+xmlLength;
     xmlLength="</DownloadPath>".getBytes().length+xmlLength;
     DownloadPath=ParseElement.getInstance().createElement(FTPConfigFile,"DownloadPath",document);
     if(DeviceInfoFtp.getVideoFtp().getPath()!=null)
     {
      xmlLength=DeviceInfoFtp.getVideoFtp().getPath().getBytes().length+xmlLength;
      ParseElement.getInstance().setText(DownloadPath, DeviceInfoFtp.getVideoFtp().getPath());
     }else
     {
      xmlLength="".getBytes().length+xmlLength;
      ParseElement.getInstance().setText(DownloadPath, "");
     }
     xmlLength="<FirmwareName>".getBytes().length+xmlLength;
     xmlLength="</FirmwareName>".getBytes().length+xmlLength;
     FirmwareName=ParseElement.getInstance().createElement(FTPConfigFile,"FirmwareName",document);
     if(DeviceInfoFtp.getVideoFtp().getPath()!=null)
     {
      xmlLength="vimicro06.bin".getBytes().length+xmlLength;
      ParseElement.getInstance().setText(FirmwareName, "vimicro06.bin");
     }else
     {
      xmlLength="".getBytes().length+xmlLength;
      ParseElement.getInstance().setText(FirmwareName, "");
     }
     
     System.out.println("ftpconfig="+xmlLength);
     
     /*
      * DefaultVideoParams
      */
     xmlLength="<DefaultVideoParams>".getBytes().length+xmlLength;
     xmlLength="</DefaultVideoParams>".getBytes().length+xmlLength;
     DefaultVideoParams=ParseElement.getInstance().createElement(IpCam_CfgResponse,"DefaultVideoParams",document);
     xmlLength="<Width>".getBytes().length+xmlLength;
     xmlLength="</Width>".getBytes().length+xmlLength;
     Width=ParseElement.getInstance().createElement(DefaultVideoParams,"Width",document);
     xmlLength="320".getBytes().length+xmlLength;
     ParseElement.getInstance().setText(Width, "320");
     xmlLength="<Height>".getBytes().length+xmlLength;
     xmlLength="</Height>".getBytes().length+xmlLength;
     Height=ParseElement.getInstance().createElement(DefaultVideoParams,"Height",document);
     xmlLength="20".getBytes().length+xmlLength;
     ParseElement.getInstance().setText(Height, "20");
     xmlLength="<fps>".getBytes().length+xmlLength;
     xmlLength="</fps>".getBytes().length+xmlLength;
     fps=ParseElement.getInstance().createElement(DefaultVideoParams,"fps",document);
     xmlLength="10".getBytes().length+xmlLength;
     ParseElement.getInstance().setText(fps, "10");
     xmlLength="<fps_Force>".getBytes().length+xmlLength;
     xmlLength="</fps_Force>".getBytes().length+xmlLength;
     fps_Force=ParseElement.getInstance().createElement(DefaultVideoParams,"fps_Force",document);
     xmlLength="0".getBytes().length+xmlLength;
     ParseElement.getInstance().setText(fps_Force, "0");
     System.out.println("DefaultVideoParams="+xmlLength);
     
     /*
      * Cryptogram
      */
     xmlLength="<Cryptogram>".getBytes().length+xmlLength;
     xmlLength="</Cryptogram>".getBytes().length+xmlLength;
     Cryptogram=ParseElement.getInstance().createElement(IpCam_CfgResponse,"Cryptogram",document);
     xmlLength="xiao bai 2007".getBytes().length+xmlLength;
     ParseElement.getInstance().setText(Cryptogram, "xiao bai 2007");
     
     System.out.println("cyrptogram="+xmlLength);
     
     /*
      * Timer
      */
     xmlLength="<Timer>".getBytes().length+xmlLength;
     xmlLength="</Timer>".getBytes().length+xmlLength;
     Timer=ParseElement.getInstance().createElement(IpCam_CfgResponse,"Timer",document);
     SimpleDateFormat now1 =new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
     Date date1=new Date();
     String time = now1.format(date1);
     xmlLength=time.getBytes().length+xmlLength;
     ParseElement.getInstance().setText(Timer, time);//时间5月份的话,必须是05,必须2位,其他也一样
     
     System.out.println("timer="+xmlLength);
   }else
   {
    XMLPacketWriter.getInstance().createErrorResponse(response,"SipService407");//数据对象不唯一
   }
  }catch(Exception e)
  {
   XMLPacketWriter.getInstance().createErrorResponse(response,"SipService408");//取数据异常
  }

 
  try {
   this.XMLWriterSystem(response,document,xmlLength);
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }

  
 }
 public void XMLResponse(HttpServletResponse response,Document document)
 {
  try
  {
   String xmlAsString=document.asXML();
   PrintWriter = response.getWriter();
   
   PrintWriter.println(xmlAsString);
  }catch(IOException e)
      {
       //System.out.println(e.getMessage());
   PrintWriter.print("401");
     }finally
     {
      PrintWriter.flush();
      PrintWriter.close();
     }
  
  
 }
 public void XMLWriterSystem(HttpServletResponse response,Document document,int xmlLength) throws IOException
 {
  //  Pretty print the document to System.out
  /*
   * //有2种打印方法,漂亮的和紧凑的
   *     public static OutputFormat createPrettyPrint() {
        OutputFormat format = new OutputFormat();
        format.setIndentSize(2);
        format.setNewlines(true);
        format.setTrimText(true);
        format.setPadText(true);

        return format;
    }
    public static OutputFormat createCompactFormat() {
        OutputFormat format = new OutputFormat();
        format.setIndent(false);
        format.setNewlines(false);
        format.setTrimText(true);

        return format;
    }
   */
  OutputFormat format = OutputFormat.createCompactFormat();
  int length=document.asXML().toString().length();
  System.out.println("xmlLength="+xmlLength);
  System.out.println("length="+length);
  response .setContentLength(length);
//  response.setContentLength(length+discrepancy);//用UltraEdit计算xml长度+183长度放入http协议里传输
  //response.setContentLength(1259);
  try
  {
   OutputStream=response.getOutputStream();
   XMLWriter = new XMLWriter( OutputStream, format );
   XMLWriter.write( document );
  }catch(Exception e)
  {
   e.printStackTrace();
  }finally
  {
   XMLWriter.close();
   OutputStream.flush();
   OutputStream.close();
   
  }
 }
 
 public void XMLWriterSystemFormat(HttpServletResponse response,Document document) throws IOException
 {
    // Compact format to System.out
  OutputFormat format = OutputFormat.createCompactFormat();
  try
  {
   OutputStream=response.getOutputStream();
   XMLWriter = new XMLWriter( OutputStream, format );
   XMLWriter.write( document );
  }catch(Exception e)
  {
   e.printStackTrace();
  }finally
  {
   OutputStream.flush();
   OutputStream.close();
   XMLWriter.flush();
   XMLWriter.close();
  }
 }
 public void XMLWriterFile(String fileNameAndPath,Document document)
 {
  try{
      XMLWriter output = new XMLWriter(new FileWriter( new File(fileNameAndPath) ));
          output.write( document );
          output.close();
     }catch(IOException e)
       {
        //System.out.println(e.getMessage());
      }
 }
 public void createErrorResponse(HttpServletResponse response,String error)
 {
  
  document = ParseDocument.getInstance().createDocument();
  IpCam_CfgResponse = ParseElement.getInstance().createElement(null, "IpCam_CfgResponse",document);
  IpCam_CfgResponse.addComment("********   Zhou JianGuo  ********");
  Error=ParseElement.getInstance().createElement(IpCam_CfgResponse,"Error",document);
  ParseElement.getInstance().setText(Error, error);
  try {
   this.XMLWriterSystem(response,document,0);
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
 /**
  * @return the soapService
  */
 public SoapService getSoapService() {
  return soapService;
 }

 /**
  * @param soapService the soapService to set
  */
 public void setSoapService(SoapService soapService) {
  this.soapService = soapService;
 }
 
 public static void main(String[] args)
 {
  String xmlTitle="<?xml version=/"1.0/" encoding=/"UTF-8/" ?>";
  String chsStr="</SipService>";
  System.out.println("xmlTitle="+xmlTitle+" 长度:"+xmlTitle.length());
  System.out.println("xmlTitle="+xmlTitle+" 流长度:"+xmlTitle.getBytes().length);
  System.out.println("chsStr="+chsStr+" 长度:"+chsStr.length());
  System.out.println("chsStr="+chsStr+" 流长度:"+chsStr.getBytes().length);
  
 }

}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值