侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 144671 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

was8.5无法解析 EL 函数

2023-12-01 星期五 / 0 评论 / 0 点赞 / 10 阅读 / 3935 字

一、问题说明 因需要修复启用了OPTIONS方法的漏洞,现修改应用的web.xml文件: 修改头文件规范为: <?xml version="1.0" encoding="UTF-8"?><web-ap

一、问题说明

因需要修复启用了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>标签,如果不加应用安装失败

打包安装应用没有问题

二、出现异常信息

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

在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_CHECKvalue: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

广告 广告

评论区