访问报HTTP Status 500错误。ubuntu+tomcat+java6 页面的功能是显示一些要查询的XML文件。请高手帮忙看看,本人不是太懂JSP语言~
===========================================================================
访问返回的错误内容:
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: org.apache.xerces.dom.DocumentImpl.getXmlStandalone()Z
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:848)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)
org.apache.jsp.role.modrolexml_jsp._jspService(org.apache.jsp.role.modrolexml_jsp:120)
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:322)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
com.goldhuman.auth.AuthFilter.doFilter(AuthFilter.java:186)
root cause java.lang.AbstractMethodError: org.apache.xerces.dom.DocumentImpl.getXmlStandalone()Z
com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.setDocumentInfo(DOM2TO.java:373)
com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:127)
com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:94)
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity(TransformerImpl.java:662)
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:708)
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:313)
protocol.XmlRole.toXMLByteArray(XmlRole.java:636)
org.apache.jsp.role.modrolexml_jsp._jspService(org.apache.jsp.role.modrolexml_jsp:97)
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:322)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
com.goldhuman.auth.AuthFilter.doFilter(AuthFilter.java:186)
====================================网页源代码======================================
<%@page contentType="text/html; charset=GBK"%>
<%@page import="java.lang.*"%>
<%@page import="java.util.*"%>
<%@page import="java.io.*"%>
<%@page import="java.text.*"%>
<%@page import="org.apache.commons.lang.StringEscapeUtils"%>
<%@page import="protocol.*"%>
<%@page import="com.goldhuman.auth.*"%>
<%@page import="org.apache.commons.logging.Log"%>
<%@page import="org.apache.commons.logging.LogFactory"%>
<%
com.goldhuman.Common.Octets.setDefaultCharset("UTF-16LE");
String strRoleId = request.getParameter("roleid");
String strRoleName = request.getParameter("name");LogFactory.getLog("modrolexml.jsp").info("request xml for roleid=" + strRoleId + ",name=" + strRoleName + ",operator=" + AuthFilter.getRemoteUser(session) );int roleid = -1;
if( null != strRoleId && strRoleId.length() > 0 )
roleid = Integer.parseInt(request.getParameter("roleid"));if( -1 == roleid && null != strRoleName && strRoleName.length() > 0 )
{
try{ roleid = GameDB.getRoleIdByName( strRoleName ); }
catch (Exception e) { out.println(e.toString()); return; }
if( -1 == roleid )
{
out.println("8" );
return;
}
}
if( -1 == roleid )
{
out.println("9");
return;
}String xmlstring = null;
byte[] xmlbytes = null;
try{
XmlRole.Role role = XmlRole.getRoleFromDB(roleid);
if( null == role )
{
out.println("7");
return;
}
xmlbytes = XmlRole.toXMLByteArray(role);
if( null == xmlbytes )
{
out.println("6");
return;
}
xmlstring = new String( xmlbytes, "UTF-8" ); Runtime.getRuntime().exec("/bin/mkdir -p /var/spool/rolexml/outcoming");
(new FileOutputStream("/var/spool/rolexml/outcoming/"
+roleid+"_"+System.currentTimeMillis()/1000+".xml"))
.write(xmlstring.getBytes("UTF-8"));
}
catch (Exception e) { out.println(e.toString()); return; }
LogFactory.getLog("modrolexml.jsp").info("getRoleInfoXML success, roleid=" + roleid + ",name=" + strRoleName + ",operator=" + AuthFilter.getRemoteUser(session) );
%>
<%=xmlstring%>
===========================================================================
访问返回的错误内容:
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: org.apache.xerces.dom.DocumentImpl.getXmlStandalone()Z
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:848)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)
org.apache.jsp.role.modrolexml_jsp._jspService(org.apache.jsp.role.modrolexml_jsp:120)
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:322)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
com.goldhuman.auth.AuthFilter.doFilter(AuthFilter.java:186)
root cause java.lang.AbstractMethodError: org.apache.xerces.dom.DocumentImpl.getXmlStandalone()Z
com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.setDocumentInfo(DOM2TO.java:373)
com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:127)
com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:94)
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity(TransformerImpl.java:662)
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:708)
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:313)
protocol.XmlRole.toXMLByteArray(XmlRole.java:636)
org.apache.jsp.role.modrolexml_jsp._jspService(org.apache.jsp.role.modrolexml_jsp:97)
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:322)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
com.goldhuman.auth.AuthFilter.doFilter(AuthFilter.java:186)
====================================网页源代码======================================
<%@page contentType="text/html; charset=GBK"%>
<%@page import="java.lang.*"%>
<%@page import="java.util.*"%>
<%@page import="java.io.*"%>
<%@page import="java.text.*"%>
<%@page import="org.apache.commons.lang.StringEscapeUtils"%>
<%@page import="protocol.*"%>
<%@page import="com.goldhuman.auth.*"%>
<%@page import="org.apache.commons.logging.Log"%>
<%@page import="org.apache.commons.logging.LogFactory"%>
<%
com.goldhuman.Common.Octets.setDefaultCharset("UTF-16LE");
String strRoleId = request.getParameter("roleid");
String strRoleName = request.getParameter("name");LogFactory.getLog("modrolexml.jsp").info("request xml for roleid=" + strRoleId + ",name=" + strRoleName + ",operator=" + AuthFilter.getRemoteUser(session) );int roleid = -1;
if( null != strRoleId && strRoleId.length() > 0 )
roleid = Integer.parseInt(request.getParameter("roleid"));if( -1 == roleid && null != strRoleName && strRoleName.length() > 0 )
{
try{ roleid = GameDB.getRoleIdByName( strRoleName ); }
catch (Exception e) { out.println(e.toString()); return; }
if( -1 == roleid )
{
out.println("8" );
return;
}
}
if( -1 == roleid )
{
out.println("9");
return;
}String xmlstring = null;
byte[] xmlbytes = null;
try{
XmlRole.Role role = XmlRole.getRoleFromDB(roleid);
if( null == role )
{
out.println("7");
return;
}
xmlbytes = XmlRole.toXMLByteArray(role);
if( null == xmlbytes )
{
out.println("6");
return;
}
xmlstring = new String( xmlbytes, "UTF-8" ); Runtime.getRuntime().exec("/bin/mkdir -p /var/spool/rolexml/outcoming");
(new FileOutputStream("/var/spool/rolexml/outcoming/"
+roleid+"_"+System.currentTimeMillis()/1000+".xml"))
.write(xmlstring.getBytes("UTF-8"));
}
catch (Exception e) { out.println(e.toString()); return; }
LogFactory.getLog("modrolexml.jsp").info("getRoleInfoXML success, roleid=" + roleid + ",name=" + strRoleName + ",operator=" + AuthFilter.getRemoteUser(session) );
%>
<%=xmlstring%>
package org.apache.jsp.role;import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import java.lang.*;
import java.util.*;
import java.io.*;
import java.text.*;
import org.apache.commons.lang.StringEscapeUtils;
import protocol.*;
import com.goldhuman.auth.*;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;public final class modrolexml_jsp extends org.apache.jasper.runtime.HttpJspBase
implements org.apache.jasper.runtime.JspSourceDependent { private static java.util.Vector _jspx_dependants; public java.util.List getDependants() {
return _jspx_dependants;
} public void _jspService(HttpServletRequest request, HttpServletResponse response)
throws java.io.IOException, ServletException { JspFactory _jspxFactory = null;
PageContext pageContext = null;
HttpSession session = null;
ServletContext application = null;
ServletConfig config = null;
JspWriter out = null;
Object page = this;
JspWriter _jspx_out = null;
PageContext _jspx_page_context = null;
try {
_jspxFactory = JspFactory.getDefaultFactory();
response.setContentType("text/html; charset=GBK");
pageContext = _jspxFactory.getPageContext(this, request, response,
null, true, 8192, true);
_jspx_page_context = pageContext;
application = pageContext.getServletContext();
config = pageContext.getServletConfig();
session = pageContext.getSession();
out = pageContext.getOut();
_jspx_out = out; out.write("\n");
out.write("\n");
out.write("\n");
out.write("\n");
out.write("\n");
out.write("\n");
out.write("\n");
out.write("\n");
out.write("\n");
out.write("\n");com.goldhuman.Common.Octets.setDefaultCharset("UTF-16LE");
String strRoleId = request.getParameter("roleid");
String strRoleName = request.getParameter("name");LogFactory.getLog("modrolexml.jsp").info("request xml for roleid=" + strRoleId + ",name=" + strRoleName + ",operator=" + AuthFilter.getRemoteUser(session) );int roleid = -1;
if( null != strRoleId && strRoleId.length() > 0 )
roleid = Integer.parseInt(request.getParameter("roleid"));if( -1 == roleid && null != strRoleName && strRoleName.length() > 0 )
{
try{ roleid = GameDB.getRoleIdByName( strRoleName ); }
catch (Exception e) { out.println(e.toString()); return; }
if( -1 == roleid )
{
out.println("8" );
return;
}
}
if( -1 == roleid )
{
out.println("9");
return;
}String xmlstring = null;
byte[] xmlbytes = null;
try{
XmlRole.Role role = XmlRole.getRoleFromDB(roleid);
if( null == role )
{
out.println("7");
return;
}
xmlbytes = XmlRole.toXMLByteArray(role);
if( null == xmlbytes )
{
out.println("6");
return;
}
xmlstring = new String( xmlbytes, "UTF-8" ); Runtime.getRuntime().exec("/bin/mkdir -p /var/spool/rolexml/outcoming");
(new FileOutputStream("/var/spool/rolexml/outcoming/"
+roleid+"_"+System.currentTimeMillis()/1000+".xml"))
.write(xmlstring.getBytes("UTF-8"));
}
catch (Exception e) { out.println(e.toString()); return; }
LogFactory.getLog("modrolexml.jsp").info("getRoleInfoXML success, roleid=" + roleid + ",name=" + strRoleName + ",operator=" + AuthFilter.getRemoteUser(session) ); out.write('\n');
out.print(xmlstring);
} catch (Throwable t) {
if (!(t instanceof SkipPageException)){
out = _jspx_out;
if (out != null && out.getBufferSize() != 0)
out.clearBuffer();
if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
}
} finally {
if (_jspxFactory != null) _jspxFactory.releasePageContext(_jspx_page_context);
}
}
}
XML-parser related AbstractMethodError can be seen when you're using
older version of parser in your configuration.
getXmlStandalone() method is available from DOM Level 3(or, JDK5.0).
http://java.sun.com/javase/6/docs/api/org/w3c/dom/Document.html#getXmlStandalone()
Your XML-parser should be DOM Level 2 or earlier version. see also:
http://groups.google.com/group/twitter4j/browse_thread/thread/f6f8440c1e0d44d7/24f69ad2dd3db138?lnk=gst&q=abstractmethoderror#24f69ad2dd3db138API的中文地址:http://gceclub.sun.com.cn/Java_Docs/jdk6/html/zh_CN/api/org/w3c/dom/Document.html