tomcat使用了struts2提示 C:\WINDOWS\system32 does not exist 不存在的解决办法
2013/12/29 9:46:5 | 阅5477 | 来源:好空间网络 [打印] [关闭] |
昨天遇到个用户,遇到的问题听起来比较奇怪,大致为: 整个网站正常,部分action一访问就是404,而且还伴有数据库超时的提示,,于是直接怀疑到是不是数据库的问题,在此问题上他找了很久,依然没有解决....
于是联系我,让我给看看!!
当然我也首先怀疑是不是数据库有问题了,不过测试后发现数据库是正常的,于是怀疑是不tomcat版本的问题,让用户把我们服务器上的tomcat版本下回去在本地一运行是正常的~~~
这个就比较奇怪了,没办法只好上服务器去用dos方式启动控制台,看看他报什么错.....
结果用dos方式启动后网站神奇的自动好了....于是以为正常了,,,通知用户看看,谁知道用户一访问居然还是不正常!!
于是想到一个我们虚拟主机的安全控制规则!!于是打开tomcat/logs文件夹里面的日志发现启动正常,但是在访问网页的时候他提示java.io.FileNotFoundException: C:\WINDOWS\system32 does not exist. 这个错误...
struts.multipart.saveDir没有配置。
struts.multipart.saveDir用于指定存放临时文件的文件夹,该配置写在struts.properties文件或者struts.xml配置文件中。例如,如果是struts.properties文件,则加入如下代码:struts.multipart.saveDir = /tmp/或者是struts.xml配置文件,则增加如下代码:<constant name="struts.multipart.saveDir" value="/tmp">,设置临时文件上传路径。就能解决此问题。
现在很明显了,,就是这个错误造成用户的网站不正常,仔细看这个提示,是用户读取了我们的系统文件夹,而这个文件夹用户是没有权限读取的,所以他读取的时候会报错,也就导致了用户的网站不正常!!
知道问题就好解决了,联系用户咨询是否使用了struts框架,用户回答用了,然后让用户检查struts2有个上传图片的功能,需要配置下一个缓存文件夹,问题就出在那个缓存文件夹上!!
默认请看下他写的是\temp 到服务器上后就需要写服务器上的绝对路径,要不然他就会默认认为是系统的temp文件夹
附上具体的解决办法:解决办法是我和客户的QQ对话记录!大家自己看看