아래 경로에서 jar를 스트림으로 가져 오려고하지만 항상 null 포인터 오류가 발생합니다. 다음은 ServletContext getResourceAsStream이 null을 반환합니다.
내가 아래에 위치C:\Users\jacksons5\workspace\BeerApp\WebContent\WEB-INF\jar
,691에서 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)
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");
}
내 서블릿 코드입니다
안녕 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 참조) 아카이브). – stdunbar
HI Stdunbar는 나는,이 링크에서 제공하는 솔루션을 시도한 후 불행하게도, 내가 편집 한 내 원래의 게시물을 작동 당신이 보는 것이 당신이 쓴이 – Jackson2489
를 해결 도와주세요 않았다 제공된 링크를 시도 '/ WEB-INF/jar/teamspace.jar'에 액세스하십시오. @stdunbar에 응답하여 당신은'/ WEB-INF/teamspace.jar'를 썼습니다. 정말? – JimHawkins