org.xml.sax.SAXParseException: The element type "meta" must be terminated by the matching end-tag "</meta>".
在库里没有数据的时候就会报这个错误,可是库里有数据的时候就不会抱错,我的源代码:
import com.mchange.v2.c3p0.ComboPooledDataSource;
import com.synball.bridge.business.OrganizationManager;
import com.synball.bridge.entity.Organization;
import com.synball.framework.SpringHelper;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;/**
*
* @author Administrator
*/
public class SubAppAction extends DispatchAction { private static Log slog = LogFactory.getLog(SubAppAction.class);
/*
select SUM(recordCount) ct, app_id, app_name, org_id, org_name from (
select numid, q.guid, senddirection, recordcount, startdate, bytecount,org_id,org_name,app_id,app_name from syn_data_exchange_logs e LEFT JOIN (
select * from syn_processes p left JOIN (
select id app_id, app_Name, g.org_id, org_Name
from syn_appsystems a left JOIN syn_organizations g
on a.org_id = g.org_id
) c on p.sendeeId = c.app_id
) q on e.guid = q.guid
) x
where x.org_id = 1 group by app_id order by ct desc;
*/ public ActionForward sender(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
response.setContentType("application/xml");
response.setHeader("Cache-Control","no-store");
response.setHeader("Pragrma","no-cache");
response.setDateHeader("Expires",0);
Document doc = DocumentHelper.createDocument();
Element chart = doc.addElement("chart");
chart.addAttribute("baseFontSize", "12");
chart.addAttribute("palette", "2");
chart.addAttribute("formatNumberScale", "0");
OrganizationManager organizationManager = (OrganizationManager) SpringHelper.getManagerByClass(Organization.class);
Organization sorg = organizationManager.getSelfOrg(); String sql = "select SUM(recordCount) ct, app_id, app_name, org_id, org_name from ( select numid, q.guid, senddirection, recordcount, startdate, bytecount,org_id,org_name,app_id,app_name from syn_data_exchange_logs e LEFT JOIN ( select * from syn_processes p left JOIN ( select id app_id, app_Name, g.org_id, org_Name from syn_appsystems a left JOIN syn_organizations g on a.org_id = g.org_id ) c on p.senderId = c.app_id ) q on e.guid = q.guid ) x where x.org_id="+sorg.getId()+" group by app_id order by ct desc";
ComboPooledDataSource dataSource = (ComboPooledDataSource) SpringHelper.getBean("dataSource");
Connection cnn = null;
ResultSet rs = null;
PreparedStatement pstmt = null;
try {
cnn = dataSource.getConnection();
pstmt = cnn.prepareStatement(sql);
rs = pstmt.executeQuery();
for (int i=0;rs.next();i++) {
Element set = chart.addElement("set");
set.addAttribute("label", rs.getString(3));
set.addAttribute("value", String.valueOf(rs.getInt(1)));
if (i==0)
set.addAttribute("isSliced", "1");
//dataset.addValue(Double.parseDouble(String.valueOf(rs.getInt(1))), "first", rs.getString(3));
}
} catch (SQLException ex) {
slog.error("build XML: " + doc.asXML(), ex);
} finally {
rs.close();
pstmt.close();
cnn.close();
} PrintWriter out = response.getWriter();
out.println(doc.asXML());
out.flush();
out.close(); return null; }
public ActionForward senderDetail(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
response.setContentType("application/xml");
response.setHeader("Cache-Control","no-store");
response.setHeader("Pragrma","no-cache");
response.setDateHeader("Expires",0);
Document doc = DocumentHelper.createDocument();
Element chart = doc.addElement("chart");
chart.addAttribute("baseFontSize", "12");
chart.addAttribute("palette", "2");
chart.addAttribute("formatNumberScale", "0");
OrganizationManager organizationManager = (OrganizationManager) SpringHelper.getManagerByClass(Organization.class);
Organization sorg = organizationManager.getSelfOrg(); String sql = "select SUM(recordCount) ct, app_id, app_name, org_id, org_name from ( select numid, q.guid, senddirection, recordcount, startdate, bytecount,org_id,org_name,app_id,app_name from syn_data_exchange_logs e LEFT JOIN ( select * from syn_processes p left JOIN ( select id app_id, app_Name, g.org_id, org_Name from syn_appsystems a left JOIN syn_organizations g on a.org_id = g.org_id ) c on p.senderId = c.app_id ) q on e.guid = q.guid ) x where x.org_id="+sorg.getId()+" group by app_id order by ct desc";
ComboPooledDataSource dataSource = (ComboPooledDataSource) SpringHelper.getBean("dataSource");
Connection cnn = null;
ResultSet rs = null;
PreparedStatement pstmt = null;
try {
cnn = dataSource.getConnection();
pstmt = cnn.prepareStatement(sql);
rs = pstmt.executeQuery();
for (int i=0;rs.next();i++) {
Element set = chart.addElement("set");
set.addAttribute("label", rs.getString(3));
set.addAttribute("value", String.valueOf(rs.getInt(1))); }
} catch (SQLException ex) {
slog.error("build XML: " + doc.asXML(), ex);
} finally {
rs.close();
pstmt.close();
cnn.close();
} PrintWriter out = response.getWriter();
System.out.print(doc.asXML());
out.println(doc.asXML());
out.flush();
out.close(); return null; }}
在库里没有数据的时候就会报这个错误,可是库里有数据的时候就不会抱错,我的源代码:
import com.mchange.v2.c3p0.ComboPooledDataSource;
import com.synball.bridge.business.OrganizationManager;
import com.synball.bridge.entity.Organization;
import com.synball.framework.SpringHelper;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;/**
*
* @author Administrator
*/
public class SubAppAction extends DispatchAction { private static Log slog = LogFactory.getLog(SubAppAction.class);
/*
select SUM(recordCount) ct, app_id, app_name, org_id, org_name from (
select numid, q.guid, senddirection, recordcount, startdate, bytecount,org_id,org_name,app_id,app_name from syn_data_exchange_logs e LEFT JOIN (
select * from syn_processes p left JOIN (
select id app_id, app_Name, g.org_id, org_Name
from syn_appsystems a left JOIN syn_organizations g
on a.org_id = g.org_id
) c on p.sendeeId = c.app_id
) q on e.guid = q.guid
) x
where x.org_id = 1 group by app_id order by ct desc;
*/ public ActionForward sender(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
response.setContentType("application/xml");
response.setHeader("Cache-Control","no-store");
response.setHeader("Pragrma","no-cache");
response.setDateHeader("Expires",0);
Document doc = DocumentHelper.createDocument();
Element chart = doc.addElement("chart");
chart.addAttribute("baseFontSize", "12");
chart.addAttribute("palette", "2");
chart.addAttribute("formatNumberScale", "0");
OrganizationManager organizationManager = (OrganizationManager) SpringHelper.getManagerByClass(Organization.class);
Organization sorg = organizationManager.getSelfOrg(); String sql = "select SUM(recordCount) ct, app_id, app_name, org_id, org_name from ( select numid, q.guid, senddirection, recordcount, startdate, bytecount,org_id,org_name,app_id,app_name from syn_data_exchange_logs e LEFT JOIN ( select * from syn_processes p left JOIN ( select id app_id, app_Name, g.org_id, org_Name from syn_appsystems a left JOIN syn_organizations g on a.org_id = g.org_id ) c on p.senderId = c.app_id ) q on e.guid = q.guid ) x where x.org_id="+sorg.getId()+" group by app_id order by ct desc";
ComboPooledDataSource dataSource = (ComboPooledDataSource) SpringHelper.getBean("dataSource");
Connection cnn = null;
ResultSet rs = null;
PreparedStatement pstmt = null;
try {
cnn = dataSource.getConnection();
pstmt = cnn.prepareStatement(sql);
rs = pstmt.executeQuery();
for (int i=0;rs.next();i++) {
Element set = chart.addElement("set");
set.addAttribute("label", rs.getString(3));
set.addAttribute("value", String.valueOf(rs.getInt(1)));
if (i==0)
set.addAttribute("isSliced", "1");
//dataset.addValue(Double.parseDouble(String.valueOf(rs.getInt(1))), "first", rs.getString(3));
}
} catch (SQLException ex) {
slog.error("build XML: " + doc.asXML(), ex);
} finally {
rs.close();
pstmt.close();
cnn.close();
} PrintWriter out = response.getWriter();
out.println(doc.asXML());
out.flush();
out.close(); return null; }
public ActionForward senderDetail(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
response.setContentType("application/xml");
response.setHeader("Cache-Control","no-store");
response.setHeader("Pragrma","no-cache");
response.setDateHeader("Expires",0);
Document doc = DocumentHelper.createDocument();
Element chart = doc.addElement("chart");
chart.addAttribute("baseFontSize", "12");
chart.addAttribute("palette", "2");
chart.addAttribute("formatNumberScale", "0");
OrganizationManager organizationManager = (OrganizationManager) SpringHelper.getManagerByClass(Organization.class);
Organization sorg = organizationManager.getSelfOrg(); String sql = "select SUM(recordCount) ct, app_id, app_name, org_id, org_name from ( select numid, q.guid, senddirection, recordcount, startdate, bytecount,org_id,org_name,app_id,app_name from syn_data_exchange_logs e LEFT JOIN ( select * from syn_processes p left JOIN ( select id app_id, app_Name, g.org_id, org_Name from syn_appsystems a left JOIN syn_organizations g on a.org_id = g.org_id ) c on p.senderId = c.app_id ) q on e.guid = q.guid ) x where x.org_id="+sorg.getId()+" group by app_id order by ct desc";
ComboPooledDataSource dataSource = (ComboPooledDataSource) SpringHelper.getBean("dataSource");
Connection cnn = null;
ResultSet rs = null;
PreparedStatement pstmt = null;
try {
cnn = dataSource.getConnection();
pstmt = cnn.prepareStatement(sql);
rs = pstmt.executeQuery();
for (int i=0;rs.next();i++) {
Element set = chart.addElement("set");
set.addAttribute("label", rs.getString(3));
set.addAttribute("value", String.valueOf(rs.getInt(1))); }
} catch (SQLException ex) {
slog.error("build XML: " + doc.asXML(), ex);
} finally {
rs.close();
pstmt.close();
cnn.close();
} PrintWriter out = response.getWriter();
System.out.print(doc.asXML());
out.println(doc.asXML());
out.flush();
out.close(); return null; }}
是不是页面中缺少结束符</meta>
在库里没有数据的时候就会报这个错误,可是库里有数据的时候就不会抱错,我的源代码:
-------------------------------------------------------
可能是数据库里没有数据的时候生成xml少了结束标签
for (int i=0;rs.next();i++) {
Element set = chart.addElement("set");
set.addAttribute("label", rs.getString(3));
set.addAttribute("value", String.valueOf(rs.getInt(1))); }
这个循环是不会执行的.
看一下如果不执行这里 那些 生成的那些元素会对你构建xml有影响.
仔细查下!