weblogic的热部署「建议收藏」

weblogic的热部署「建议收藏」1、为什么要热部署大家在进行web开发的时候,都希望自己修改的内容在不手动编译、不重启服务的时候立即生效,这样可以极大的方便开发和调试。这个就是我今天要讲的weblogic的热部署。一.Weblogic热部署相关配置项 Weblogic能实现热部署功能,而且有自己的热部署机制,一般的应用在Weblogic的控制台中有如下三个配置项: servlet-reload-check-secs resour…

大家好,又见面了,我是你们的朋友全栈君。

1、为什么要热部署

大家在进行web开发的时候,都希望自己修改的内容在不手动编译、不重启服务的时候立即生效,这样可以极大的方便开发和调试。这个就是我今天要讲的weblogic的热部署。

一.Weblogic热部署相关配置项 
Weblogic能实现热部署功能,而且有自己的热部署机制,一般的应用在Weblogic的控制台中有如下三个配置项: 
servlet-reload-check-secs 
resource-reload-check-secs 
JSP page-check-seconds

xml配置:

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">  

<weblogic-web-app>  
    <jsp-descriptor>  
        <jsp-param>  
            <param-name>compileFlags</param-name>  
            <param-value>-g</param-value>  
        </jsp-param>  
        <jsp-param>  
            <param-name>keepgenerated</param-name>  
            <param-value>true</param-value>  
        </jsp-param>  
        <jsp-param>  
            <param-name>pageCheckSeconds</param-name>  
            <param-value>1</param-value>  
        </jsp-param>  
    </jsp-descriptor>  
    <container-descriptor>  
        <servlet-reload-check-secs>1</servlet-reload-check-secs>  
        <resource-reload-check-secs>1</resource-reload-check-secs>  
        <!-- weblogic优先使用web程序自带的类库 -->  
        <prefer-web-inf-classes>false</prefer-web-inf-classes>  
    </container-descriptor>  
    <context-root>StrutsDemoApp</context-root>  
</weblogic-web-app>  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

下面对weblogic.xml的这三个设置选项的介绍: 
1.servlet-reload-check-secs 
元素定义 WebLogic Server是否执行 servlet检查以查看 servlet是否已更改,如果已更改,是否重新加载。 
值-1:表示永不检查 servlet。该值为生产环境中的默认值。 
值0:表示总是检查 servlet。 
值1:表示每秒检查一次 servlet。该值为开发环境中的默认值。

2.resource-reload-check-secs

使用 元素针对 Web应用程序范围内资源路径中发现的缓存资源执行元数据缓存。该参数标识 WebLogic Server检查资源是否发生修改的频率,如果已修改,则重新加载。 
值-1:表示元数据进行缓存,但从不对磁盘进行检查以便找出所做的更改。建议在生产环境中使用该值,以提升性能。 
值0:表示不执行元数据缓存。持续更改文件的客户必须将该参数设置为大于或等于 0的一个值。 
值1:表示每秒重新加载一次。该值为开发环境中的默认值。

3.JSP page-check-seconds

设置 WebLogic Server检查 JSP文件的时间间隔(秒),以便查看 JSP文件是否已更改以及是否需要重新编译。如果已发生更改,还会检查依赖关系并递归重新加载。 
值-1:表示永不检查页面。该值为生产环境中的默认值。 
值0:表示总是检查页面。 
值1:表示每秒检查一次页面。该值为开发环境中的默认值。 
所以分别配置Servlet、Resource和Jsp的来控制对应三类所控制的内容的热部署时间间隔,如果设置为-1的话那么这一项就不支持热部署。当值配置为1的话就可以支持热部署。

二.配置热部署步骤

为了实现程序的热部署,我们需要以下几个步骤:

1.修改weblogic的启动参数 
使用domain中的startWebLogic.cmd来启动weblogic的话,则在domain/bin下的setDomainEnv.cmd中将该参数配置上,在该文件最后添加设置参数命令:set JAVA_OPTIONS=%JAVA_OPTIONS% -Dorg.apache.tapestry.disable-caching=true -Dorg.apache.tapestry.enable-reset-service=true,如下图所示: 
这里写图片描述

2.检查weblogic.xml配置文件

其中如果有: 
xml代码:

<container-descriptor>  
  <servlet-reload-check-secs>0</servlet-reload-check-secs>  
  <resource-reload-check-secs>0</resource-reload-check-secs>  
</container-descriptor>  
<jsp-descriptor>  
  <jsp-param>  
   <param-name>pageCheckSeconds</param-name>  
   <param-value>0</param-value>  
  </jsp-param>  
</jsp-descriptor>  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

请将上述数值都修改为0。 
3.配置Eclipse中的工程自动编译 
检查Eclipse中工程配置的默认编译输出路径是否为projectHome/web/WEB-INF/classes。 
修改步骤为:在Package Explorer视图中的工程上右键–>属性(properties)–>Java构件路径(Java Build Path)–>源代码(Source)–>默认输出路径(Default output folder)。这里修改为web/WEB-INF/classes即可。可以通过右边的浏览(Browse)按钮来选择。 确保 project->build automatically已经被选上。 
4. 检查ie选项中是否设置了每次访问本页时检查最新 
设置方法:工具–>Internet选项–>常规–>浏览历史记录中的设置,在弹出框中设置(针对ie7,8),如下所示: 
这里写图片描述 
三.生产环境配置 
对于生产环境,需对系统配置JSP和Servlet的pageCheckSeconds为-1,以禁止jsp和servlet的重新destroy和init,以提高系统可用率。 
具体需在各应用WAR包的weblogic.xml增加如下配置: 
1.对于jsp文件,设置pageCheckSeconds为-1,禁止重新编译 
xml:

<jsp-descriptor>  
   <param-name>pageCheckSeconds</param-name>  
   <param-value>-1</param-value>  
</jsp-descriptor>  
  • 1
  • 2
  • 3
  • 4

2.对于servlet,设置servlet-reload-check-secs的值为-1,禁止servlet重新destory和init 
Xml代码

<container-descriptor>  
   <servlet-reload-check-secs>-1</servlet-reload-check-secs>  
</container-descriptor  
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/143443.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • カード名義_acm题

    カード名義_acm题原题链接给定一棵包含 n 个节点的有根无向树,节点编号互不相同,但不一定是 1∼n。有 m 个询问,每个询问给出了一对节点的编号 x 和 y,询问 x 与 y 的祖孙关系。输入格式输入第一行包括一个整数 表示节点个数;接下来 n 行每行一对整数 a 和 b,表示 a 和 b 之间有一条无向边。如果 b 是 −1,那么 a 就是树的根;第 n+2 行是一个整数 m 表示询问个数;接下来 m 行,每行两个不同的正整数 x 和 y,表示一个询问。输出格式对于每一个询问,若 x 是 y 的祖先则输

  • kettle工具使用教程

    kettle工具使用教程kettle工具使用教程Kettle简介Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,数据抽取高效稳定。Kettle中文名称叫水壶,该项目的主程序员MATT希望把各种数据放到一个壶里,然后以一种指定的格式流出。Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么…

    2022年10月16日
  • matlab读取txt文件为数组「建议收藏」

    matlab读取txt文件为数组「建议收藏」clc;clear;closeall;rows=[1180];%4行到17行。cols=[11];%3到8列。[FileName,PathName]=uigetfile(‘*.txt’,’SelecttheTxtfiles’);%弹出对话框,然后选择你要处理的文件fid=fopen([PathNameFileName]);temp=textscan(f…

  • 电平转换方法_为什么低电平有效

    电平转换方法_为什么低电平有效咸鱼NOFASHION硬件开发过程中常常遇到电平不匹配的问题,就这个问题作简要说明与总结:电平匹配或者电平转换方法:直接选用转换芯片,此方案对于设计来说最简单、通信速率高、性能稳定、成本一般较高;但作为一个合格的硬件工程师,需要考虑成本、空间、结构等问…

  • Flume和kafka连接测试

    Flume和kafka连接测试Flume的配置文件:(和kafka连接的配置文件)#文件名:kafka.properties#配置内容:分别在linux系统里面建两个文件夹:一个文件夹用于存储配置文件(flumetest),一个文件夹用于存储需要读取的文件(flume)a1.sources=s1a1.channels=c1a1.sinks=k1a1.sources.s1.type=netcata1.s…

  • 浅谈CMS垃圾收集器与G1收集器

    浅谈CMS垃圾收集器与G1收集器1、CMS收集器  CMS收集器是一种以获取最短回收停顿时间为目标的收集器。基于“标记-清除”算法实现,它的运作过程如下:1)初始标记2)并发标记3)重新标记4)并发清除  初始标记、从新标记这两个步骤仍然需要“stop the world”,初始标记仅仅只是标记一下GC Roots能直接关联到的对象,熟读很快,并发标记阶段就是进行GC Roots Tracing,而重新标…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号