2013-04-29 31 views
0

我想创建一个简单的JSP页面,它导入一个java类,这是一个萨克斯解析器。当我将应用程序部署到XMLReader的实例时,出现错误。我已经使用主要方法对其进行了测试,以确保java正常工作。我忘记配置设置了吗?以下是我的JSP页面和我的课程。与SAX解析器类的JSP类实例化错误

JSP页面

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<%@page import="com.xml.XMLReader" %> 
<%@page import="com.xml.Weather" %> 
<%@page import="java.util.ArrayList" %> 

<!DOCTYPE html> 

<jsp:useBean id="xmlReader" class="XMLReader" scope="session" /> 

<% 
    XMLReader reader = new XMLReader(); 
    ArrayList<Weather> list; 
    list = reader.readXML(); 

%> 

<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>Weather Application</title> 
    </head> 
    <body> 
     <p>test</p> 
    </body> 
</html> 

XmlReader类简称

public class XMLReader extends DefaultHandler implements java.io.Serializable { 

    //variable declarations 
    private Weather weather; 
    private ArrayList<weather> weatherList = new ArrayList<weather>(); 
    private String data; 

    public XMLReader() {} 

    public ArrayList<CityWeather> readXML() throws ParserConfigurationException, SAXException, IOException { 
     SAXParserFactory saxFactory = SAXParserFactory.newInstance(); 
     SAXParser sp = saxFactory.newSAXParser(); 

     XMLReader handler = new XMLReader(); 

     sp.parse("Weather.xml", handler); 

     return handler.getList(); 

    } 

    @Override 
    public void startElement(String uri, String localName, String qName, Attributes attributes) 
     throws SAXException { 

    .... 
    } 

    @Override 
    public void endElement(String uri, String localName, String qName) throws SAXException { 

    ... 
    } 

    @Override 
    public void characters(char[] buffer, int start, int length) { 
     data = new String(buffer, start, length); 
    } 
} 

编辑:这是错误的堆栈跟踪

java.lang.InstantiationException: XMLReader 
    at org.apache.jsp.index_jsp._jspService(index_jsp.java from :64) 
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:403) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:492) 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:378) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) 
    at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1539) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655) 
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595) 
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98) 
    at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162) 
    at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:330) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231) 
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:174) 
    at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:828) 
    at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:725) 
    at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1019) 
    at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225) 
    at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137) 
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104) 
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90) 
    at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79) 
    at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54) 
    at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59) 
    at com.sun.grizzly.ContextTask.run(ContextTask.java:71) 
    at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) 
    at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) 
    at java.lang.Thread.run(Thread.java:662) 
+0

@BeauGrantham我添加了堆栈跟踪。谢谢 – medium 2013-04-29 16:37:25

+0

为什么你在JSP中这样做呢? – 2013-04-29 16:43:45

回答

0

很抱歉的混乱,我做了一个干净/构建和有些原因,它的工作。我以前曾尝试过,但由于某种原因,它没有采取。感谢您的帮助。