SAXBuilder sb=new SAXBuilder();
URL cl = Client.class.getClassLoader().getResource("");
base = cl.getPath();
base = str_trim(base,"/");
base = base.replace("classes", "");
doc = sb.build(new FileInputStream( base + "client.xml"));
root = doc.getRootElement();
我先说一下base + "client.xml"的结果:
"D:\Program Files\Apache Software Foundation\apache-tomcat-7.0.27\webapps\WebContent\WEB-INF\client.xml"路径感觉没问题啊!client.xml正是放在WEB-INF下下面是client.xml文件内容:<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/2002/xmlspec/dtd/2.10/xmlspec.dtd">
<clients>
<client name="win32fan" key="8273f9a4830487d0fd67eefa1f05423e"></client>
</clients>
经我断点调试,发现doc==null,问题出在哪里呢?
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:549)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:460)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
不可能呀,client.xml得确是放在web-inf下的
new File(String filePath);接受正确URI格式的参数和带“空格”(非20%)的正确相对/绝对字符串路径,否则即使给的路径是正确的也会出现找不到文件的异常。我的解决办法:
client.class.getResource("").toURI().getPath(),