type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Exception in JSP: /add.jsp:4946: Source in =new DOMSource(doc);
47: Result outxml=new StreamResult(DataPath);
48: //Result outxml=new StreamResult(new FileOutputStream(DataPath));
49: trans.transform(in,outxml);
50: %>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:504)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause javax.servlet.ServletException: org.apache.xerces.dom.DeferredDocumentImpl.getXmlStandalone()Z
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:858)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)
org.apache.jsp.add_jsp._jspService(add_jsp.java:107)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause java.lang.AbstractMethodError: org.apache.xerces.dom.DeferredDocumentImpl.getXmlStandalone()Z
com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.setDocumentInfo(Unknown Source)
com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source)
com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source)
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity(Unknown Source)
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)
org.apache.jsp.add_jsp._jspService(add_jsp.java:98)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)/*add.jsp*/
<%@ page contentType="text/html;charset=GB2312"%>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="org.w3c.dom.*"%>
<%@ page import="org.xml.sax.*"%>
<%@ page import="javax.xml.parsers.*"%>
<%@ page import="javax.xml.transform.*"%>
<%@ page import="javax.xml.transform.dom.*"%>
<%@ page import="javax.xml.transform.stream.*"%>
<%
String uid=request.getParameter("uid");
String pwd=request.getParameter("pwd");
String intro=request.getParameter("intro");
Document doc;
DocumentBuilderFactory df=DocumentBuilderFactory.newInstance();
df.setValidating(false);
DocumentBuilder db=df.newDocumentBuilder();
String DataPath="D://data.xml";
//String DataPath=application.getRealPath("/data.xml");
doc=db.parse(new File(DataPath));
Node moban_node=doc.getFirstChild().getFirstChild();
Node new_node=moban_node.cloneNode(true);
NodeList allNode=new_node.getChildNodes();
if(allNode!=null)
{
for(int k=0;k<allNode.getLength();k++)
{
String nodename=allNode.item(k).getNodeName();
if(nodename.equals("uid"))
{
allNode.item(k).getFirstChild().setNodeValue(uid);
}
if(nodename.equals("pwd"))
{
allNode.item(k).getFirstChild().setNodeValue(pwd);
}
if(nodename.equals("intro"))
{
allNode.item(k).getFirstChild().setNodeValue(intro);
}
}
}
doc.getFirstChild().appendChild(new_node);
TransformerFactory transf=TransformerFactory.newInstance();
Transformer trans=transf.newTransformer();
Source in =new DOMSource(doc);
Result outxml=new StreamResult(DataPath);
//Result outxml=new StreamResult(new FileOutputStream(DataPath));
trans.transform(in,outxml);
%>
有知道的帮忙解决一下,我查了好多地方都没答案

解决方案 »

  1.   


    import java.io.File;import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.transform.Result;
    import javax.xml.transform.Source;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;import org.w3c.dom.Document;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;public class Test {
    public void a(HttpServletRequest request, HttpServletResponse response) {
    try {
    String uid = "uid";
    String pwd = "pwd";
    String intro = "intro";
    Document doc;
    DocumentBuilderFactory df = DocumentBuilderFactory.newInstance();
    df.setValidating(false);
    DocumentBuilder db = df.newDocumentBuilder();
    String DataPath = "D://data.xml";
    // String DataPath=application.getRealPath("/data.xml");
    doc = db.parse(new File(DataPath));
    Node moban_node = doc.getFirstChild().getFirstChild();
    Node new_node = moban_node.cloneNode(true);
    NodeList allNode = new_node.getChildNodes();
    if (allNode != null) {
    for (int k = 0; k < allNode.getLength(); k++) {
    String nodename = allNode.item(k).getNodeName();
    if (nodename.equals("uid")) {
    allNode.item(k).getFirstChild().setNodeValue(uid);
    }
    if (nodename.equals("pwd")) {
    allNode.item(k).getFirstChild().setNodeValue(pwd);
    }
    if (nodename.equals("intro")) {
    allNode.item(k).getFirstChild().setNodeValue(intro);
    }
    }
    }
    doc.getFirstChild().appendChild(new_node);
    TransformerFactory transf = TransformerFactory.newInstance(); Transformer trans = transf.newTransformer();
    Source in = new DOMSource(doc);
    Result outxml = new StreamResult(DataPath);
    // Result outxml=new StreamResult(new FileOutputStream(DataPath));
    trans.transform(in, outxml);
    } catch (Exception e) {
    // TODO: handle exception
    }
    } public static void main(String[] args) {
    Test t=new Test();
    t.a(null,null);
    }
    }
    运行没有抛异常
      

  2.   

    我运行,出来个NoClassDefFoundError:org/apache/xml/serializer/TreeWalker
    我知道这是xalan.jar中的,而我里面也确实没这个类,但这个例子有用到这个类吗?