was8.5沒法解析 EL 函數

1、問題說明

因須要修復啓用了OPTIONS方法的漏洞,現修改應用的web.xml文件:html

修改頭文件規範爲:java

<?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文件中增長:python

<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>標籤,若是不加應用安裝失敗web

打包安裝應用沒有問題apache

2、出現異常信息

在調用的時候出現以下異常:服務器

在WAS61下運行正常的項目,爲啥遷移到was8.5就有問題呢?cookie

查信息中心給出以下解釋:session

WAS8.5在驗證EL表達式時比較嚴謹。oracle

使用此屬性來放寬對 EL 變量標識的檢查。放寬檢查行爲等價於低於 V8.0 的 WebSphere Application Server 版本中所觀察到的行爲。app

從 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

3、解決方案

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

相關文章
相關標籤/搜索