/** * Copyright (c)2010-2011 Enterprise Website Content Management System(EWCMS), All rights reserved. * EWCMS PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * http://www.ewcms.com */ package com.ewcms.plugin.report.generate.service.text; import java.io.ByteArrayOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.ewcms.plugin.BaseRuntimeException; // import net.sf.jasperreports.engine.JasperExportManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.export.JRXmlExporter; import net.sf.jasperreports.engine.export.JRXmlExporterParameter; /** * XML格式报表 * * @author 吴智俊 */ public class XmlGenerateService extends BaseTextGenerateServiceable { private static final Logger logger = LoggerFactory.getLogger(XmlGenerateService.class); protected byte[] generate(JasperPrint jasperPrint, HttpServletResponse response, HttpServletRequest request) { try { ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); // JasperExportManager.exportReportToXmlStream(jasperPrint, out); JRXmlExporter exporter = new JRXmlExporter(); exporter.setParameter(JRXmlExporterParameter.JASPER_PRINT, jasperPrint); exporter.setParameter(JRXmlExporterParameter.OUTPUT_STREAM, byteArrayOutputStream); exporter.exportReport(); byte[] bytes = byteArrayOutputStream.toByteArray(); if (response != null) { response.setContentLength(bytes.length); response.setContentType("application/xml"); } return bytes; } catch (Exception e) { logger.error("Xml Generate Exception", e); throw new BaseRuntimeException(e.toString()); } } }