FileNotFoundException
我遇到了一些问题。
java.io.FileNotFoundException:C:\ Program Files(x86)\ Apache Software 基础\ Tomcat 7.0 \ webapps \ folder \ folder \文件夹(访问被拒绝)at java.io.FileOutputStream.open(Native Method)at java.io.FileOutputStream。(未知来源)at java.io.FileOutputStream。(未知来源)at org.apache.commons.fileupload.disk.DiskFileItem.write(DiskFileItem.java:416) 在org.apache.jsp.control_jsp._jspService(control_jsp.java:2715)at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)at at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) 在 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) 在org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) 在javax.servlet.http.HttpServlet.service(HttpServlet.java:728)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 在 org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 在 net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:206) 在 net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:179) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 在 org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) 在 org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) 在 org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041) 在 org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:603) 在 org.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run(JIoEndpoint.java:312) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor $ Worker.run(Unknown Source) 在java.lang.Thread.run(未知来源)
该文件是从网络表单上传的。我不认为上面的代码是有原因的。
代码:
String itemName = item.getName();
if (itemName.indexOf("\\") != -1) {
int slash = itemName.lastIndexOf("\\");
if (slash != -1) {
itemName = itemName.substring(slash + 1);
}
// I think Windows doesn't like /'s either
int slash2 = itemName.lastIndexOf("/");
if (slash2 != -1) {
itemName = itemName.substring(slash2 + 1);
}
// In case the name is C:foo.txt
int slash3 = itemName.lastIndexOf(":");
if (slash3 != -1) {
itemName = itemName.substring(slash3 + 1);
}
}
File savedFile = new File(config.getServletContext().getRealPath("/") + "filing/" + itemName);
item.write(savedFile);
对于我的网络应用中的更多文件夹,会发生这种情况。
我搜索了互联网上的解决方案,但我发现这个特定错误的唯一方法就是:
该文件夹无法访问,就像它被写保护(只读)一样,但我的文件夹可以访问除特殊权限和完全控制之外的所有文件夹。
顺便说一下,我的所有文件夹都是在代码中动态创建的。
P.S代码不是我的,我只是每天在我的webapp stderr中发现这些错误,它似乎没有产生问题,但我想解决它。
有没有人遇到同样的问题或者可以提供帮助?
我知道这不是一个非常严肃的问题,但问题永远不会伤害。
提前致谢。