@红薯 你好,想跟你请教个问题:web项目本来部署在windows server上运行正常,采用的是oschina开源的代码,现在迁移到Ubuntu server14.04,项目部署在/var/lib/tomcat7/webapps/cmsis,当用户上传文件时出现如下错误:
java.lang.IllegalArgumentException: Not a directory: /var/lib/tomcat7/webapps/cmsis/WEB-INF/tmp/Ri4rDuQL3W at com.oreilly.servlet.MultipartRequest.<init>(MultipartRequest.java:214) at com.oreilly.servlet.MultipartRequest.<init>(MultipartRequest.java:173) at my.mvc.MultipartRequest.<init>(MultipartRequest.java:26) at my.mvc.RequestContext._AutoUploadRequest(RequestContext.java:204) at my.mvc.RequestContext.begin(RequestContext.java:119) at my.mvc.URLMappingFilter.doFilter(URLMappingFilter.java:103) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745)
其中at my.mvc.RequestContext._AutoUploadRequest(RequestContext.java:204)
//上传的临时目录设置
upload_tmp_path = webroot + "WEB-INF" + File.separator + "tmp" + File.separator;
请问这是什么原因,是文件夹权限问题吗?一般tomcat在生成环境部署的时候,对于用户上传的文件夹应该怎么处理呢?谢谢!
1. 从日志提示来看,是目录不存在,你可以手动新建该tmp目录
2. 不存在,会新建目录,如果服务器没有自动创建目录,那就是权限问题,那么就去增加对应父目录的写权限,然后就能自动创建目录了