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对话记录!大家自己看看

 

狼崖雪  9:29:31
我的文件上传的缓存配置在C盘根目录下了= =|||
嗯嗯
JSP空间jspkongjian.net  9:29:53
应该是struts的吧
能具体的跟我说下吗??
狼崖雪  9:30:17
可以


JSP空间jspkongjian.net  9:30:36
是struts的吗??

狼崖雪  9:30:45
在struts2开始进行配置的时候,由于我需要上传图片
是的
然后一般需要一个缓存
文件夹
JSP空间jspkongjian.net  9:31:05

狼崖雪  9:31:16
我这里写了/tmp,代表着根目录下的tmp。、、
所以当时就报错了
JSP空间jspkongjian.net  9:32:29
明白了,,这个tmp 没有指定绝对路径的话默认就是在c:\windows\systemp32文件夹里面
狼崖雪  9:32:54
但不知道为什么会这样,因为/tmp其实代表的应该是上一级的文件夹下的tmp文件夹啊。。。
是么
JSP空间jspkongjian.net  9:33:15
他应该默认是系统的
狼崖雪  9:33:16
那我把它改名叫其他的可以么= =||
JSP空间jspkongjian.net  9:33:25
改绝对路径就可以了呀
改我们服务器上的绝对路径
我们服务器上的绝对路径可以在会员管理中心,空间详细信息里面看见
狼崖雪  9:33:48
哦,可以。
想起来了~
狼崖雪  9:35:33
d:\tomcat\njfn\项目名\文件名这样?
JSP空间jspkongjian.net  9:35:41
是的
d:\tomcat\njfn\temp
这样就可以了
tomcat下有个temp文件夹的

 

经营许可证ICP:皖B2-20100052 公司邮箱:zcdnsz@jspkongjian.net
Copyright © 2004-2015, 安徽好空间网络科技有限公司 版权所有 , 本站素材部分来源于网络,如有侵权请告知删除。