解决MyEclipse 5.5和Weblogic 9.2整合以及清除缓存问题

来源:互联网 发布:浙大冰虫 知乎 编辑:程序博客网 时间:2024/05/16 01:28
    最近公司需要用到weblogic9.2做开发,关于两者之间的整合网上一搜一大堆,而且和整合tomcat的方法基本相同,本文中只列出相关步骤,在这里我谈一下在整合一下在整合过程中遇到的一些问题,以及在开发过程中关于缓存问题解决的方法。
        一)MyEclipse 5.5和Weblogic 9.2整合步骤
        1.点击MyEclipse工具栏上的“Window”->"Preferences"->"MyEclipse"->"Aplication Servers"->"Weblogic"->"Weblogic 9.x"。
        2.Weblogic Server 选择"Enable"
        3.BEA home directory:D:\bea。假定WebLogic安装在D:\bea文件夹中。 
        4.WebLogic installation directory:D:\BEA\weblogic92。 
        5.Administrator username:weblogic。 
        6.
Administrator password:weblogic。 
        7.Execution domain root:D:\bea\user_projects\domains\base_domain。 已设置此路径为工作域。
        8.Execution server name:AdminServer。 
        9.Security policy file:D:\bea\weblogic92\server\lib\weblogic.policy。
        10.JAAS login configuration file:省略。
        11.点击Apply。
        12.展开
"Weblogic 9.x"选项,点击“Launch”。
        13.确认External management server 选为"This server is running standalone",确认Weblogic launch mode 选为"Debug mode"
        14.点击"OK"

        二)解决整合以后依然不能运行的问题
        按照以上配置后操作我们熟悉的"deploy"->"run"发布,启动应用,但是有可能因为由于MyEclispe的Bug依然不成功,因此编辑D:\bea\user_projects\domains\base_domain\config\config.xml文件,在<admin-server-name>AdminServer</admin-server-name>这一行前添加如下代码:

<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>stage</staging-mode>
  </app-deployment>
注意:其中
EAI_Manage为项目名称.

再尝试发布运行代码,OK!运行成功.

        三)清除缓存问题
        按照以上的配置方式可以通过MyEclipse去发布运行应用到Weblogic 9.2上,但是在实际开发过程中又遇到了一个由于缓存引起的问题:在项目的Webroot下添加一个页面后,通过浏览器访问此页面居然返回404错误!
        例如:在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>


转自:http://blog.163.com/danielxiajing@126/blog/static/103368270200912055313442/