test.xml
<?xml version="1.0" encoding="UTF-8"?>
<xml>
<customer>
<name>小名</name>
</customer>
</xml>
a.jsp
<%@ page contentType= "text/html;charset = gb2312" language = "java"%>
<%@ page import = "javax.xml.parsers.DocumentBuilder,
javax.xml.parsers.DocumentBuilderFactory,
javax.xml.parsers.*,
javax.xml.transform.*,
javax.xml.transform.dom.DOMSource,
javax.xml.transform.stream.StreamResult,
org.w3c.dom.*,
java.io.*
"%>
<%
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setIgnoringElementContentWhitespace(true);
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(pageContext.getServletContext().getResourceAsStream("/test.xml"));
doc.normalize();
NodeList names = doc.getElementsByTagName("name");
String name = names.item(0).getFirstChild().getNodeValue();
name = new String(name.getBytes("gb2312"));
out.println(name);
%>为什么我执行a.jsp后会报错:
org.apache.jasper.JasperException: InputStream cannot be null
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause java.lang.IllegalArgumentException: InputStream cannot be null
javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
org.apache.jsp.sast.a_jsp._jspService(a_jsp.java:56)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
<?xml version="1.0" encoding="UTF-8"?>
<xml>
<customer>
<name>小名</name>
</customer>
</xml>
a.jsp
<%@ page contentType= "text/html;charset = gb2312" language = "java"%>
<%@ page import = "javax.xml.parsers.DocumentBuilder,
javax.xml.parsers.DocumentBuilderFactory,
javax.xml.parsers.*,
javax.xml.transform.*,
javax.xml.transform.dom.DOMSource,
javax.xml.transform.stream.StreamResult,
org.w3c.dom.*,
java.io.*
"%>
<%
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setIgnoringElementContentWhitespace(true);
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(pageContext.getServletContext().getResourceAsStream("/test.xml"));
doc.normalize();
NodeList names = doc.getElementsByTagName("name");
String name = names.item(0).getFirstChild().getNodeValue();
name = new String(name.getBytes("gb2312"));
out.println(name);
%>为什么我执行a.jsp后会报错:
org.apache.jasper.JasperException: InputStream cannot be null
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause java.lang.IllegalArgumentException: InputStream cannot be null
javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
org.apache.jsp.sast.a_jsp._jspService(a_jsp.java:56)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
解决方案 »
- EL表达式的一个问题
- JSP页面回传值问题,有A.jsp和B.jsp,在a中点进b选择然后把值返回给a,要求a中原来值不变且能读b传回的值.
- 虚拟楼盘
- 问一下大家,有用JAVA做C/S数据库系统的吗?
- 好久没来了,散分,顺便请教一个函数!
- 请教:关于jsp中中文显示的问题
- TOMCAT 4.1 中 iso8859_1和GB2312的乱码问题??
- jdk1.3在WIN98下设置环境变量时出现的问题
- 如何用jsp創建一個目錄?
- 用Java Servlet作一个表单的提交程序,可是调用时出错了?应该怎么解决啊?
- 关于Filter读取HttpServletRequest中请求内容的问题
- jsp下拉框问题
建议lz先写一个判断文件是否存在
存在的话在继续
你把这个打印下 看看这个路径下 是否有那个xml文件
你可以看看我上个帖子给人家的那个例子
你也可以写一个
File dir = new File(pageContext.getServletContext().getResourceAsStream("/test.xml"));
if(dir.exists()){
System.out.println("Th文件存在");
}else{
System.out.println("文件不存在");
}
if(dir.exists()){
out.println("Th文件存在");
}else{
out.println("文件不存在");
}
文件判断是有的。
晕 你要看看pageContext.getServletContext().getResourceAsStream("/test.xml"))
是否==D:\\Tomcat 5.0\\webapps\\ROOT\\aa\\test.xml
javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
org.apache.jsp.sast.a_jsp._jspService(a_jsp.java:56)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802) Xml文件没有找到,路径不对,或者把你项目结构说一下,帮你检查一下
这个路径是自动获取
D:\\Tomcat 5.0\\webapps\\ROOT\\aa\\test.xml
这个是写死的--------------------
早给你说了 你把两个打印下
你就能看出两者不同了