`

weblogic的热部署

阅读更多

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

一.Weblogic热部署相关配置项

        Weblogic能实现热部署功能,而且有自己的热部署机制,一般的应用在Weblogic的控制台中有如下三个配置项:

        servlet-reload-check-secs

         resource-reload-check-secs

        JSP  page-check-seconds

<?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>

        下面对weblogic.xml的这三个设置选项的介绍:

1.servlet-reload-check-secs

        <servlet-reload-check-secs>元素定义 WebLogic Server是否执行 servlet检查以查看 servlet是否已更改,如果已更改,是否重新加载。

        值-1:表示永不检查 servlet。该值为生产环境中的默认值。

        值0:表示总是检查 servlet。

        值1:表示每秒检查一次 servlet。该值为开发环境中的默认值。

2.resource-reload-check-secs

        使用 <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配置文件

        其中如果有:

<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>

        请将上述数值都修改为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,禁止重新编译

<jsp-descriptor>
   <param-name>pageCheckSeconds</param-name>
   <param-value>-1</param-value>
</jsp-descriptor>

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

<container-descriptor>
   <servlet-reload-check-secs>-1</servlet-reload-check-secs>
</container-descriptor

 

参考文章:

http://blog.csdn.net/hmily86021/article/details/7475391

http://geweixin.iteye.com/blog/702112

  • 大小: 46 KB
  • 大小: 66.2 KB
分享到:
评论

相关推荐

    Weblogic服务开发的热部署

    在开发软件的时候,WebLogic服务热部署可以有效的提过开发速度,不用把时间浪费到不停的重启服务上。

    WebLogic10 配置部署说明书

    WebLogic10 配置 部署 JNDI 数据源

    webLlogic 热部署配置指南

    在大型的互联网开发项目中,我们往往在做调试的时候需要花费很多时间去重启项目。热部署就可以实现不用重新启动项目,就能看到测试结果。

    java反序列化漏洞利用工具WebLogicExploit_weblogic图形化漏洞利用工具

    jboss利用里添加一键getshell功能,利用的是jboss的热部署功能,直接部署一个war包,一键返回一个菜刀shell 3. 反弹shell部分更完美,不再加载远程war包,直接发包完成反弹。 4. jboss回显执行命令部分利用异常抛出...

    Java反序列化漏洞利用工具(WebLogic&Jboss;)

    jboss利用里添加一键getshell功能,利用的是jboss的热部署功能,直接部署一个war包,一键返回一个菜刀shell 3. 反弹shell部分更完美,不再加载远程war包,直接发包完成反弹。 4. jboss回显执行命令部分利用异常抛出...

    Java反序列化漏洞利用工具(WebLogic&Jboss)

    2. jboss利用里添加一键getshell功能,利用的是jboss的热部署功能,直接部署一个war包,一键返回一个菜刀shell 3. 反弹shell部分更完美,不再加载远程war包,直接发包完成反弹。 4. jboss回显执行命令部分利用异常抛...

    java反序列化漏洞利用工具Jboss&WebLogic;.rar

    jboss利用里添加一键getshell功能,利用的是jboss的热部署功能,直接部署一个war包,一键返回一个菜刀shell 3. 反弹shell部分更完美,不再加载远程war包,直接发包完成反弹。 4. jboss回显执行命令部分利用异常抛出...

    maximo71安装说明

    maximo71安装说明,主要包括WEBLOGIC,WAS等中间件使用

    java反序列化漏洞利用工具

    2. jboss利用里添加一键getshell功能,利用的是jboss的热部署功能,直接部署一个war包,一键返回一个菜刀shell 3. 反弹shell部分更完美,不再加载远程war包,直接发包完成反弹。 4. jboss回显执行命令部分利用异常抛...

    java反序列化漏洞利用工具WebLogicExploit

    jboss利用里添加一键getshell功能,利用的是jboss的热部署功能,直接部署一个war包,一键返回一个菜刀shell 3. 反弹shell部分更完美,不再加载远程war包,直接发包完成反弹。 4. jboss回显执行命令部分利用异常抛出...

    javaexec.zip

    2. jboss利用里添加一键getshell功能,利用的是jboss的热部署功能,直接部署一个war包,一键返回一个菜刀shell 3. 反弹shell部分更完美,不再加载远程war包,直接发包完成反弹。 4. jboss回显执行命令部分利用异常抛...

    环境搭建文档.docx

    Redis,MongoDB,weblogic安装,包含 linux-MongoDB集群(一主一备+仲裁),MongoDB集群数据热备份,跟着文档操作,轻松搞定。

    Nginx与Tomcat实现动静态分离和负载均衡

    Nginx一个高性能的HTTP和反向代理服务器, 具有很高的稳定性和支持热部署、模块扩展也很容易。当遇到访问的峰值,或者有人恶意发起慢速连接时,也很可能会导致服务器物理内存耗尽频繁交换,失去响应,只能重启服务器...

    java 面试题 总结

    但EJB必须被布署在诸如Webspere、WebLogic这样的容器中,EJB客户从不直接访问真正的EJB组件,而是通过其容器访问。EJB容器是EJB组件的代理,EJB组件由容器所创建和管理。客户通过容器来访问真正的EJB组件。 21、...

    超级有影响力霸气的Java面试题大全文档

    但EJB必须被布署在诸如Webspere、WebLogic这样的容器中,EJB客户从不直接访问真正的EJB组件,而是通过其容器访问。EJB容器是EJB组件的代理, EJB组件由容器所创建和管理。客户通过容器来访问真正的EJB组件。 24、...

    springboot参考指南

    部署到云端 i. 49. Cloud Foundry i. 49.1. 绑定服务 ii. 50. Heroku iii. 51. Openshift iv. 52. Google App Engine v. 53. 接下来阅读什么 8. VII. Spring Boot CLI i. 54. 安装CLI ii. 55. 使用CLI i. 55.1. ...

    Spring中文帮助文档

    7.10.1. 热交换目标源 7.10.2. 池化目标源 7.10.3. 原型目标源 7.10.4. ThreadLocal目标源 7.11. 定义新的Advice类型 7.12. 更多资源 8. 测试 8.1. 简介 8.2. 单元测试 8.2.1. Mock对象 8.2.2. 单元测试...

    Spring API

    7.10.1. 热交换目标源 7.10.2. 池化目标源 7.10.3. 原型目标源 7.10.4. ThreadLocal目标源 7.11. 定义新的Advice类型 7.12. 更多资源 8. 测试 8.1. 简介 8.2. 单元测试 8.2.1. Mock对象 8.2.2. 单元测试...

    Spring 2.0 开发参考手册

    7.10.1. 热交换目标源 7.10.2. 池化目标源 7.10.3. 原型目标源 7.10.4. ThreadLocal目标源 7.11. 定义新的通知类型 7.12. 更多资源 8. 测试 8.1. 简介 8.2. 单元测试 8.3. 集成测试 8.3.1. Context管理和...

    spring chm文档

    16.9. Portlet应用的部署 IV. 整合 17. 使用Spring进行远程访问与Web服务 17.1. 简介 17.2. 使用RMI暴露服务 17.2.1. 使用 RmiServiceExporter 暴露服务 17.2.2. 在客户端链接服务 17.3. 使用Hessian或者...

Global site tag (gtag.js) - Google Analytics