2012-10-01 2 views
0

내 서버 측은 Appache Tomcat 7 (Plugin in eclipse)에서 호스팅되는 JSP 응용 프로그램입니다. 내 클라이언트 측면은 다음과 같습니다 -파일을 서버 측에 업로드하면 콘솔에 오류가 발생합니다. "액세스가 거부되었습니다"

if(("GET").equalsIgnoreCase(request.getMethod())&&("Create Reimbursement").equalsIgnoreCase(request.getParameter("Create Reimbursement"))){ 
//crresult = lmktweb.createReimbursement(Integer.parseInt(request.getParameter("ID")), request.getParameter("EmpdID"), request.getParameter("DateCreated"), request.getParameter("Amount"),request.getParameter("Vendor"),request.getParameter("picpath")); 
HttpClient httpclient = new DefaultHttpClient(); 
HttpPost httppost = new HttpPost("http://192.168.80.125:8080/UploadFileServerSide/UploadHandler.jsp"); 
MultipartEntity entity = new MultipartEntity(); 
System.out.println(request.getParameter("fname")); 
if(request.getParameter("fname")!=""){ 
    File file = new File(request.getParameter("fname")); 
    entity.addPart("data", new FileBody(file)); 
    httppost.setEntity(entity);  
    HttpResponse resp = httpclient.execute(httppost); 
} 

내 서버 사이드는 다음과 같습니다 -

try { 
         String itemName = item.getName(); 
         String fpath = ""; 
         //item. 
         File root=File.listRoots()[0]; 
         String extPath; 
         if(crdate!=""){ 
          extPath = rei.HandlePathWithDate(crdate,getServletContext().getRealPath("images")); 
          fpath = extPath+"\\"+ppath; 
          fpath = extPath.replaceAll("/", "\\"); 
         } 
         else{ 

          extPath= getServletContext().getRealPath("/"); 
          fpath = extPath.concat("\\"+itemName);        
          fpath = extPath.replaceAll("/", "\\");       

         } 
         System.out.println("Saving as: " +fpath); 
         File f = new File(fpath); 

         f.setWritable(true); 
         f.setReadable(true); 
         item.write(f); 

        } catch (Exception e) { 
         e.printStackTrace(); 
         response.setHeader("Error", e.getMessage());        
        } 

하지만 주어진 경로에 파일을 쓰는 동안 오류를 다음 생성 -

저장을 같이 : D : \ Z-Main \ Projects \ Android Projects.metadata.plugins \ org.eclipse.wst.server.core \ tmp1 \ wtpwebapps \ UploadFileServerSide \ java.io.FileNotFoundException : D : \ Z-Main \ Projects \ Android 프로젝트. metadata.plugins \ org.eclipse.wst.server.core \ tmp1 \ wt pwebapps \ UploadFileServerSide (액세스가 거부되었습니다.) at java.io.FileOutputStream.open (네이티브 메소드) at java.io.FileOutputStream (알 수없는 소스) at java.io.FileOutputStream (알 수없는 소스) at org.apache .commons.fileupload.disk.DiskFileItem.write (DiskFileItem.java:426) at org.apache.jsp.UploadHandler_jsp._jspService (UploadHandler_jsp.java:154) at org.apache.jasper.runtime.HttpJspBase.service (HttpJspBase .java : 70) (javax.servlet.http.HttpServlet.java:722) at org.apache.jasper.servlet.JspServletWrapper.service (JspServletWrapper.java:432) at org.apache.jasper .servlet.JspServlet.serviceJspFile (JspServlet.java:390) at org.apache.jasper.servlet.JspSe rvlet.service (JspServlet.java:334) at javax.servlet.http.HttpServlet.service (HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:225) at org.apache.catalina.core.StandardContextValve. org.apache.catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase.java:472) 에서 을 호출하십시오. org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:98) at org.apache.catalina.valves.AccessLogValve.invoke (AccessLogValve.java:927) at org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:118) at org.apache.catalina.connector. (AbstractProtocol.java:565) 에서 CoyoteAdapter.service at org.apache.tomcat.util.net.AprEndpoint $ SocketProcessor.run (AprEndpoint.java:1812) at java.util.concurrent.ThreadPoolExecutor $ Worker.runTask (알 수없는 소스) at java.util.concurrent.ThreadPoolExecutor $ Worker.run (알 수없는 출처) 의 java.lang.Thread.run (알 수없는 출처)

어디에 문제가 있습니까? 현재 Tomcat Eclipse 플러그인을 사용하고 있으며이 오류는 콘솔에 표시됩니다. 안드로이드 응용 프로그램에서 동일한 코드를 호출하고 그것은 잘 작동하고 있습니다. 도움이되는 세부 정보로 안내하십시오. 나는 카탈루냐를 편집하려고 노력했다.정책 일식 서버 플러그인 폴더에있는 다음 줄을 추가 파일 : -

grant codeBase " file:${catalina.base}/webapps/UploadFileServerSide/-" { 
    ermission java.io.FilePermission "${tomcat.home}/-","read,write"; }; 

과는 다른 결과가 있지만, 지금까지 행운에 대한 기대, 일식에서 서버를 다시 시작됩니다. 어디에서 길을 잃었나요?

+0

그냥 추가 : 나는 창 플랫폼을 사용하고 있습니다. – Fundi

+0

아파치 톰캣과 함께 일한 적이 없지만 대부분의 웹 서버에는 파일을 쓸 수있는 위치를 알려주는 구성 매개 변수가 있습니다. 이는 웹 응용 프로그램의 보안 취약성에 대한 예방 조치로서 사용자가 중요한 것을 덮어 쓸 수있게합니다. – Philipp

답변

0

JSP 대신 Servlet을 사용하고 페이지를 제출하는 동안 POST 메서드를 사용할 때 문제가 해결되었습니다. 이상한!!!! 물건의 나머지 부분은 거의 동일합니다. 여전히 서블릿이 JSP에서 서버와 동일한 수준의 액세스 권한을 갖고 있다고 나는 생각하면서 혼란 스러웠습니다. 내 가정이 틀릴 수도 있습니다!

관련 문제