was8.5无法解析 EL 函数

一、问题说明

因需要修复启用了OPTIONS方法的漏洞,现修改应用的web.xml文件:

修改头文件规范为:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> 

需要在应用的web.xml文件中增加:

<security-constraint> 
<web-resource-collection> 
<url-pattern>/*</url-pattern> 
<http-method>PUT</http-method> 
<http-method>DELETE</http-method> 
<http-method>HEAD</http-method> 
<http-method>OPTIONS</http-method> 
<http-method>TRACE</http-method> 
</web-resource-collection> 
<auth-constraint> 
</auth-constraint> 
</security-constraint> 
<login-config> 
<auth-method>BASIC</auth-method> 
</login-config> 

<session-config>
<cookie-config>
<http-only>true</http-only>
<secure>true</secure>
</cookie-config>
</session-config>

如果在web.xml中引用taglib标签需要加入<jsp-config></jsp-config>标签,如果不加应用安装失败

152110_q3pN_227736.png

打包安装应用没有问题

二、出现异常信息

在调用的时候出现如下异常:

152259_Jr6k_227736.png

在WAS61下运行正常的项目,为啥迁移到was8.5就有问题呢?

查信息中心给出如下解释:

WAS8.5在验证EL表达式时比较严谨。

使用此属性来放宽对 EL 变量标识的检查。放宽检查行为等价于低于 V8.0 的 WebSphere Application Server 版本中所观察到的行为。

从 V8.0 开始,对 EL 变量标识的检查将更严格。现在,检查过程将检查 Java 保留关键字以及保留 EL 关键字。在 V8.0 之前,检查过程将仅检查保留 EL 关键字。

如果 JSTL/EL 脚本中所使用的任何变量标识中包括任何保留 JSP 关键字,那么该变量标识将无法转换,从而导致异常。处理这种异常的首选方法是修改 JSTL/EL 代码,以便不使用保留关键字作为变量名称。但是,如果无法这样做或者这样做不可行,那么将此属性设置为 true 以放宽检查级别,即放宽至低于 V8.0 的版本级别的检查级别。

可以在以下网址找到保留 JSP 关键字的列表:

http://docs.oracle.com/javaee/5/tutorial/doc/bnahq.html#bnail

三、解决方案

设置JVM定制属性:

点击服务器 > 服务器类型,然后单击 WebSphere 应用程序服务器 > server_name 或 WebSphere 代理服务器 > server_name。然后,在“服务器基础结构”下,单击 Java 和进程管理 > 进程定义 > Java 虚拟机 > 定制属性。

name:org.apache.el.parser.SKIP_IDENTIFIER_CHECK

value:true

使用wsadmin脚本修改:

server=AdminConfig.getid('/Server:/')

jvm = AdminConfig.list('JavaVirtualMachine', server)

AdminConfig.create('Property' , jvm,'[[name "org.apache.el.parser.SKIP_IDENTIFIER_CHECK"][value "true"]]')

AdminConfig.save()

重启即可!

参考:http://www.ibm.com/support/knowledgecenter/zh/SSAW57_8.5.5/com.ibm.websphere.nd.multiplatform.doc/ae/xrun_jvm.html

转载于:https://my.oschina.net/u/227736/blog/819233

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值