2014-10-07 3 views
0

나는 질문이 PC를 사용하여 JSP 페이지에서 파일을 읽을 때 내가오류가 나는 원격

C:\prova.xls

를 삽입하면, 이제

<%@page import="java.io.ByteArrayOutputStream"%> 
<%@page import="java.io.FileInputStream"%> 
<%@page import="java.io.File"%> 
<%@page contentType="text/plain" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/plain; charset=UTF-8"> 
     <title>JSP Page Action</title> 
    </head> 
    <body> 

    <%-- start web service invocation --%><hr/> 
    <% 
    String filename = request.getParameter("filename"); 

    File file = new File (filename); 
    FileInputStream fis = new FileInputStream(file); 
    ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
    byte[] buf = new byte[1024]; 
    for (int readNum; (readNum = fis.read(buf)) != -1;) { 
     bos.write(buf, 0, readNum); //no doubt here is 0 
    } 

    byte[] bi = bos.toByteArray(); 
    try { 
    ws.MyWS_Service service = new ws.MyWS_Service(); 
    ws.MyWS port = service.getMyWSPort(); 
    // TODO initialize WS operation arguments here 
    byte[] inputFile = bi; 
    // TODO process result here 
    java.lang.String result = port.mywsmethod(inputFile); 
    out.println(result); 
    } catch (Exception ex) { 
    // TODO handle custom exceptions here 
    } 
    %> 
    <%-- end web service invocation --%><hr/> 
    </body> 
</html> 

: 지금, "제출"을 클릭하면,이 페이지 JSP가 나는이 오류가 왜

07-Oct-2014 08:55:10.194 SEVERE [http-apr-8080-exec-41] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [jsp] in context with path [/myWS_Client] threw exception [An exception occurred processing JSP page /action1.jsp at line 27 

25: 
26:  File file = new File (filename); 
27:  FileInputStream fis = new FileInputStream(filename); 
28:  ByteArrayOutputStream bos = new ByteArrayOutputStream(); 


Stacktrace:] with root cause 
java.io.FileNotFoundException: C:\prova.xls (Impossibile trovare il file specificato) 
    at java.io.FileInputStream.open(Native Method) 
    at java.io.FileInputStream.<init>(FileInputStream.java:146) 
    at java.io.FileInputStream.<init>(FileInputStream.java:101) 
    at org.apache.jsp.action1_005f1_jsp._jspService(action1_005f1_jsp.java:96) 
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:725) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391) 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:335) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:725) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) 
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:534) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1081) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:658) 
    at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:277) 
    at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2381) 
    at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2370) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
    at java.lang.Thread.run(Thread.java:744) 

: PC를 원격에서

, 나는이 오류가? 내가 틀렸어? "//", "\", "\"및 "/"로이 경로를 작성하려고했지만 항상 같은 오류가 발생합니다.

답변

1

JSP는 서버 측 프로세스입니다. HTML/Javascript에 입력 한 파일 이름과 경로가 서버에 존재하지 않을 수 있습니다.

파일 업로드를 사용하여 JSP에서 조치 할 수있는 서버로 파일을 업로드하십시오.

또한 서블릿 기술 사용을 고려하고 JSP에서 코드를 사용하는 것을 싫어합니다.

+0

ok ... 파일을 업로드하고 배열 바이트로 변환하여 웹 서비스에 보내려면 어떻게해야합니까? – Musich87

+0

이 문서를 참조하십시오 http://docs.oracle.com/javaee/6/tutorial/doc/glraq.html –

+0

이 문서를 보았습니다 ...하지만 서버의 대상에 파일을 업로드하고 싶지 않습니다 ... 파일을로드하고 배열 바이트 만 변환하고 보내려고합니다. – Musich87