root cause java.lang.ClassCastException
jkzxDB.Test1.writeXMLFile(Test1.java:79)
~~~根据提示信息,是造型错误。例如
A是B的父类,C是另外一个类,B类有一个test方法返回A。例如:
B lB = new B();
A lA = (C)lB.test();这样就会产生类似的异常。

解决方案 »

  1.   

    代码如下:
    package jkzxDB;import java.sql.*;
    import java.io.*; //Java基础包,包含各种IO操作
    import java.util.*; //Java基础包,包含各种标准数据结构操作
    import javax.xml.parsers.*; //XML解析器接口
    import org.w3c.dom.*; //XML的DOM实现
    import org.apache.crimson.tree.XmlDocument;//写XML文件要用到public class Test1 {
      String check[];
      int length=0;
      private String path="";
      private int info_id=0;
      private String info_Title="";
      private String info_Text="";  public void setCheck(String[] a){
        check=a;
      }
      public void setLength(int l){
        length=l;
      }
      public Test1(){
       String check[]={"1","2","3"};
      }
      public void setPath(String p){
        path=p;
      }
      public int getLength(){
        return check.length;
      }  public void  writeXMLFile(String outFile) throws Exception {
      /*为解析XML作准备,创建DocumentBuilderFactory实例,指定DocumentBuilder*/
      DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
      DocumentBuilder db = null;
      try {    db=dbf.newDocumentBuilder();
        } catch (ParserConfigurationException pce) {
         System.err.println(pce);
         System.exit(1);
         }
        Document doc = null;
        doc=db.newDocument();
        /*下面是建立XML文档内容的过程,先建立根元素"学生花名册"*/
        Element root = doc.createElement("学生花名册");
        /*根元素添加上文档*/
        doc.appendChild(root);    /*取学生信息的Bean列表*/
        //ConnectionBean conn=new ConnectionBean();
        //String sql="select * from Info";
        //sql=conn.toChinese(sql);
        //ResultSet rs=conn.executeQuery(sql);
        //while (rs.next()){     /*依次取每个学生的信息*/
         //StudentBean studentBean = (StudentBean) student_Vector.get(i);
         /*建立"学生"元素,添加到根元素*/
         Element student = doc.createElement("学生");
         student.setAttribute("编号","123");
         root.appendChild(student);
         /*建立"姓名"元素,添加到学生下面,下同*/
         Element name = doc.createElement("标题");
         student.appendChild(name);
         Text tName = doc.createTextNode("124");
         name.appendChild(tName);     Element age = doc.createElement("内容");
         student.appendChild(age);
         Text tAge = doc.createTextNode("125");
         age.appendChild(tAge);   /*把XML文档输出到指定的文件*/
        FileOutputStream outStream = new FileOutputStream(outFile);
        OutputStreamWriter outWriter = new OutputStreamWriter(outStream);
        ((XmlDocument) doc).write(outWriter);
        outWriter.close();
        outStream.close();
      }}
    调用的JSP文件:
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>UserBean</title>
    </head>
    <body>
    <%@page language="Java" import="java.sql.*"%>
    <%@page language="Java" import="java.util.*"%>
    <%@page language="Java" import="javax.xml.parsers.*"%>
    <%@page language="Java" import="org.w3c.dom.*"%>
    <%@page language="Java" import="org.apache.crimson.tree.XmlDocument"%>
    <% request.setCharacterEncoding("gb2312"); %>
    <jsp:useBean id="checkInfo" scope="page" class="jkzxDB.Test1"/>
    <%
     String[] str=request.getParameterValues("checkbox");
     
     String kk[]={"35","36","37","38","39","40"};
     checkInfo.setCheck(kk);
     int len=checkInfo.getLength();
     checkInfo.writeXMLFile("D:\\output100.xml");
     out.println(len);
     
     
    %>
    </body></html>
      

  2.   

    楼上大哥:
    我把bean名为xml_1.java
    jsp为:xml_1.jsp
    运行结果如下,请帮个忙org.apache.jasper.JasperException: org.apache.xerces.dom.DocumentImpl
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:248)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:432)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:386)
    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:534)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:530)
    at java.lang.Thread.run(Thread.java:536)
    root cause java.lang.ClassCastException: org.apache.xerces.dom.DocumentImpl
    at xml.xml_1.writeXMLFile(xml_1.java:78)
    at org.apache.jsp.xml_1_jsp._jspService(xml_1_jsp.java:81)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:204)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(