我想从下面的路径获取流作为流的jar,但它总是抛出空指针错误。ServletContext getResourceAsStream返回null
下面是我的servlet代码
response.setContentType("application/jar");
ServletContext ctx = getServletContext();
InputStream is = null;
try {
ctx.getRealPath("/WEB-INF/jar/teamspace.jar");
is = ctx.getResourceAsStream("/WEB-INF/jar/teamspace.jar");
///WEB-INF/pdf/order.pdf
}catch(Exception e){
e.printStackTrace();
}
if(is==null){
System.err.println("it is null");
}
误差小于
我已经把jar文件在以下位置
C:\Users\jacksons5\workspace\BeerApp\WebContent\WEB-INF\jar
SEVERE: Servlet.service() for servlet BeerServlet threw exception java.lang.NullPointerException at com.beer.controller.BeerServlet.doPost(BeerServlet.java:87) at javax.servlet.http.HttpServlet.service(HttpServlet.java:643) at javax.servlet.http.HttpServlet.service(HttpServlet.java:723) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 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:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Thread.java:745)
嗨Stdunbar,
我试过链接中提供的解决方案,但它不工作, 仍显示相同的错误。
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//response.setContentType("text/html");
System.out.println("It reached the server");
//PrintWriter out = response.getWriter();
String c = request.getParameter("color");
response.setContentType("application/jar");
ServletContext ctx = getServletContext();
InputStream is = null;
try {
//ctx.getRealPath("/WEB-INF/jar/teamspace.jar");
is = ctx.getResourceAsStream("/WEB-INF/teamspace.jar");
// InputStream inStream = class.getClass().getClassLoader().getResourceAsStream("Web-INF/web.xml");
// is = class.getClass().getClassLoader().getResourceAsStream("Web-INF/web.xml");
///WEB-INF/pdf/order.pdf
}catch(Exception e){
e.printStackTrace();
}
运行此代码时,我仍然得到相同的错误!
你让它太难 - 看到[这个答案](http://stackoverflow.com/questions/1108434/howto-load-a-resource-from-web-inf-directory-of-a-web -archive)。 – stdunbar
HI Stdunbar, 我想您所提供的链接,它没有工作不幸的是,我 已经编辑我原来的职位试图链接提供的解决方案后 请帮我解决这个 – Jackson2489
你写的,你尝试访问'/ WEB-INF/jar/teamspace.jar'。为了响应@stdunbar,你写了'/ WEB-INF/teamspace.jar'。真? – JimHawkins