weblogic 域编译问题

发布web应用到wl上去的时候,java类都已经被编译成class放到了war包里面的WEB-INF下面的classes目录下,所有Java类总是编译过的最新的,不存在预编译的问题,但是jsp页面 是直接被打包到war里面的,还没有被编译,所以就存在一个预编译的问题。



如果在WEB-INF下面的的weblogic.xml配置文件里配置了:

<jsp-descriptor> 
<jsp-param> 
<param-name>precompile</param-name> 
<param-value>true</param-value> 
</jsp-param> 
</jsp-descriptor> 

那么所有的JSP文件在部署的应用程序start或者服务器启动时及在不停掉server上的 应用直接update(重新部署)时会被预编译成最新的class。




也可以配置:
<jsp-descriptor>
    <page-check-seconds>1</page-check-seconds>
    <verbose>true</verbose>
</jsp-descriptor>

这样每隔1秒wl就会去检查jsp有没有改动,有就重新编译成class,没有就不重新编译。




如何没有配置任何<jsp-descriptor>,那么即使发布上去了,一般也不会将jsp编译成对应的class,而是在首次请求该jsp页面的时候

才动态编译产生class文件。


所以会导致一些jsp页面部署完了也没有被及时的编译成class文件。




如果修改weblogic.xml需要重启itsm,而通常的发布都是在itsm运行时进行update(重新部署),也就是hot deploy,没有重新启动itsm。

所以 最好不要改变weblogic.xml文件。 可以按照如下方法来将修改了的jsp编译成class。




部署后,wl会将war包里面的jsp文件放在


/opt/itsm/domains/itsmdomain/servers/itsmserver1/tmp/_WL_user/itsm/a2yn4z/war/itsm目录下,
对应的class文件放在
/opt/itsm/domains/itsmdomain/servers/itsmserver1/tmp/_WL_user/itsm/a2yn4z/jsp_servlet目录下,


首先删掉对应的class文件,然后touch对应的jsp文件,最好在页面上访问该jsp页面就可以生产最新的class文件。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

walkingmanc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值