当前位置 : 主页 > 编程语言 > java >

如何在重新启动时让weblogic重新加载缓存的JSP

来源:互联网 收集:自由互联 发布时间:2021-06-25
我们为weblogic(11g)部署新版app的方法是复制现有ear文件的顶部,然后停止并重新启动weblogic服务器.我们开始/停止weblogic而不是重新部署,因为已知的permgen问题(最终我们将耗尽perm gen并且必须
我们为weblogic(11g)部署新版app的方法是复制现有ear文件的顶部,然后停止并重新启动weblogic服务器.我们开始/停止weblogic而不是重新部署,因为已知的permgen问题(最终我们将耗尽perm gen并且必须退回weblogic服务器).

但是,这种部署方法有一个缺点 – weblogic看不到新的JSP版本.为了解决这个问题,我们不得不在重新启动服务器之前清除tmp目录中维护已编译JSP的缓存的内容.是否有一个设置可以告诉weblogic在启动备份时擦除缓存/重新加载/重新编译JSP?

更改JSP刷新计时器

标准解决方案是通过在web.xml或weblogic.xml中设置值来告诉Weblogic更频繁地检查JSP新鲜度.

在生产模式下,Weblogic不会检查新JSP版本(默认值:-1),而在开发模式下每秒执行一次(默认值:1).

修改web.xml或weblogic.xml之间的选择取决于您所针对的应用程序服务器,仅适用于WebLogic.

如果您更喜欢修改web.xml,则为上下文参数weblogic.jsp.pageCheckSeconds设置一个值,如下所示:

<context-param>
  <param-name>weblogic.jsp.pageCheckSeconds</param-name>
  <param-value>0</param-value>
</context-param>

如果您更喜欢修改weblogic.xml,请在jsp-descriptor部分中为参数page-check-seconds设置一个值.以下是文档中的相关摘录:

Sets the interval, in seconds, at which WebLogic Server checks to see if JSP files have changed and need recompiling. Dependencies are also checked and recursively reloaded if changed.
The value -1 means never check the pages. This is the default value in a production environment.
The value 0 means always check the pages.
The value 1 means check the pages every second. This is the default value in a development environment.
In a production environment where changes to a JSP are rare, consider changing the value of pageCheckSeconds to 60 or greater, according to your tuning requirements.

资料来源:http://docs.oracle.com/cd/E21764_01/web.1111/e13712/weblogic_xml.htm#i1038490

强制重新部署

重新启动Weblogic服务器不会强制它重新部署Web应用程序(尤其是在生产模式下).


使用命令行显式触发“重新部署”生命周期操作,如下所示:

java -cp weblogic.jar weblogic.Deployer -redeploy [-remote -adminurl t3://hostname:hostport] -username login -password password -name webapp.name [-upload -source webapp.war]

>请注意,-redeploy比-update更安全,特别是.与Weblogic< = 10.x>仅在服务器不是本地服务器时,在[]之间保留第一个块.在这种情况下删除[].>如果要在同一步骤中组合WAR文件,请在[]之间保留第二个块,这样更简单.在这种情况下删除[].

网友评论