最近做一个项目,有这样一个功能:允许人在系统里写一个jsp页面的代码,并通过后台使其运行起来,生成一个新的页面;往往这个页面是需要引用一些js文件的,因而有一个上传js文件的功能。
但是在weblogic下会出现这样一种问题:
比如 我要上传5个js文件,可能会有两个引用不到,firebug查看直接是404,如果你改了名字重新上传,重新引用,就会引用到。或者你啥也不改,在weblogic控制台页面更新下项目,也就能引用到文件了。
求教解决办法
推测多半是延迟造成的。
类似Tomcat,WAS等,通常你上传文件的路径不是AppServer的工作目录。
所以到JSP或JS真正起作用为止,流程应该是这样的
[list=1]
[*]用户上传至AppServer的发布目录
[*]AppServer(Weblogic)定时扫描发布目录,发现有更改时,处理更改部分。
[*]JSP会编译后,放入工作目录。
[*]静态资源直接放入工作目录。
[*]上述2项全部OK时,新资源有效,否则404。
[/list]
我能想到的解决办法有:
[list=1]
[*]另起线程扫描工作目录,直到用户上传的资源全部OK时才让客户访问。麻烦低效不推荐。
[*]静态资源上传时直接存进工作目录。不安全不推荐,其他可能遇到的问题有访问权限之类。
[*]缩短Weblogic扫描间隔。不好掌握,无法根本解决问题。
[*]让用户忍受。给个友好的信息代替404,比如“请等待再尝试”之类的就好。推荐。
[/list]