내 서버 측은 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"; };
과는 다른 결과가 있지만, 지금까지 행운에 대한 기대, 일식에서 서버를 다시 시작됩니다. 어디에서 길을 잃었나요?
그냥 추가 : 나는 창 플랫폼을 사용하고 있습니다. – Fundi
아파치 톰캣과 함께 일한 적이 없지만 대부분의 웹 서버에는 파일을 쓸 수있는 위치를 알려주는 구성 매개 변수가 있습니다. 이는 웹 응용 프로그램의 보안 취약성에 대한 예방 조치로서 사용자가 중요한 것을 덮어 쓸 수있게합니다. – Philipp