日期:2014-05-17  浏览次数:20613 次

weblogic缓存问题
以前用weblogic的时候,更新一个jsp直接替换就可以生效,这两天替换jsp后死活不生效,重启应用也不行,必须把应用删除,然后重新部署才生效,请教各位兄弟,如何设置?weblogic是生产模式

------解决方案--------------------
Java code

清除缓存问题
例如:在Webroot下添加一个MyJsp.jsp页面,然后访问http://localhost:7001/EAI_Manage/MyJsp.jsp后返回404错误.
        为了解决这个问题,我在"D:\bea\user_projects"下搜索"EAI_Manage"发现有如下结果:
        1.D:\bea\user_projects\domains\base_domain\autodeploy\EAI_Manage
        2.D:\bea\user_projects\domains\base_domain\servers\AdminServer\tmp\_WL_user\_appsdir_EAI_Manage_dir
        3.D:\bea\user_projects\domains\base_domain\servers\AdminServer\tmp\_WL_TEMP_APP_DOWNLOADS\_appsdir_EAI_Manage_dir\
        4.D:\bea\user_projects\domains\base_domain\servers\AdminServer\stage\_appsdir_EAI_Manage_dir\
        其中
        1为MyEclipse通过deploy部署到weblogic上的,与MyEclipse目录结构一致,分析结果:正常.
        2为weblogic中jsp生成的.class文件所在的文件夹,分析结果:正常.
        3文件夹中存在一个*.jar文件,通过测试后发现此文件中有在启动时才会生成,并且在生成之后不会改变.分析结果:此文件为缓存.
        4文件夹中存在EAI_Manage文件夹,通过测试后发现文件夹中的内容与3文件夹中的内容一致,并且在启动weblogic之间删除3文件夹中的内容,而不删除此文件夹,依然存在缓存问题.分析结果:此文件夹为缓存.
        在开发过程中,当weblogic启动时,由于文件在使用中,不能删除3和4文件夹.但是每次清除缓存都需要重起服务器又降低了开发效率,因此希望找出一个方法,像tomcat那样热部署.查阅bea的官方文档后发现需要修改staging-mode参数.
        缓存解决方法:修改D:\bea\user_projects\domains\base_domain\config\config.xml中我们刚才所添加的配置文件,将staging-mode节点改成nostage即可,配置文件代码示例如下:
<app-deployment>
    <name>_appsdir_EAI_Manage_dir</name>
    <target>AdminServer</target>
    <module-type>dir</module-type>
    <source-path>autodeploy/EAI_Manage</source-path>
    <security-dd-model>DDOnly</security-dd-model>
    <staging-mode>nostage</staging-mode>
  </app-deployment>

------解决方案--------------------
楼上的应该是weblogic9的缓存目录
weblogic8的目录是 C:\bea\user_projects\domains\mydomain\myserver\.wlnotdelete\extract

删除缓存只需要停止服务,然后删除缓存目录里的内容,重启服务即可
------解决方案--------------------
<staging-mode>nostage</staging-mode>