因須要修復啓用了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
在調用的時候出現以下異常:服務器
在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
設置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