程序如下 private static String CONFIG_FILE_LOCATION="d:/";
//private static String CONFIG_XML_packofhead=CONFIG_FILE_LOCATION+"packofhead.xml";
public ReadXML() {
//System.out.print(CONFIG_XML_packofhead);
} /**
 * 读取配置文件内查询条件字段
 * @return List
 */
@SuppressWarnings("unchecked")
public List ReadConfigSearchFieldXML(String fileName){
this.fileNameString=fileName;
// 实例化一个合适的解析器对象
        SAXBuilder sb = new SAXBuilder();
        List list = null;
        try {         System.out.println(CONFIG_FILE_LOCATION+fileNameString);
            Document doc = sb.build(CONFIG_FILE_LOCATION+fileNameString);
            // 获到根元素
            Element root = doc.getRootElement();
            Element searchField = root.getChild("SearchField");
            list = searchField.getChildren("Field");
        } catch (Exception e) {
            e.printStackTrace();
        }
        return list;
}异常如下d:/historysyslogdailups.xml
java.net.MalformedURLException: unknown protocol: d
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at gnu.xml.aelfred2.XmlParser.pushURL(XmlParser.java:3414)
at gnu.xml.aelfred2.XmlParser.doParse(XmlParser.java:159)
at gnu.xml.aelfred2.SAXDriver.parse(SAXDriver.java:320)
at gnu.xml.aelfred2.XmlReader.parse(XmlReader.java:294)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:489)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:928)
at com.aaa.xml.ReadXML.ReadConfigSearchFieldXML(ReadXML.java:40)
at org.apache.jsp.template.view_jsp._jspService(view_jsp.java:194)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:738)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
2009-3-9 10:56:02 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at org.apache.jsp.template.view_jsp._jspService(view_jsp.java:196)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:738)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
这是怎么回事?
望高手指教
在线等

解决方案 »

  1.   

    at com.aaa.xml.ReadXML.ReadConfigSearchFieldXML(ReadXML.java:40)指的是
     Document doc = sb.build(CONFIG_FILE_LOCATION+fileNameString);起初我以为是空格引起的
    但是我把路径改成d:/historysyslogdailups.xml这样也还是出现这样的乱码
    实在是郁闷
    以前程序都跑的好好的……
      

  2.   

    应该是private static String CONFIG_FILE_LOCATION="file:///d:/";
    而不是private static String CONFIG_FILE_LOCATION="d:/";
    吧。
      

  3.   

    也还是出现这样的乱码 乱码?你看看可不可以从 stream 中获取 doc, stream 可以设置 encoding的
      

  4.   

    在网上查到资料了,这样就ok了解决办法:在应用路径里去掉对gnujaxp.jar包的引用。原因:jdom在解释xml文件时,如果应用路径里有gnujaxp.jar包的话,jdom就会调用它去解析xml文件,导致上述异常的出现。