国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

轉載:Struts2.3.15.1升級總結

2019-11-14 22:36:16
字體:
來源:轉載
供稿:網友
轉載:Struts2.3.15.1升級總結

轉載網址:http://blog.csdn.net/amosryan/article/details/10350481

由于大家都懂的原因,涉struts2的項目需要將struts2相關包升級至2.3.15.1。今將升級方法和常見問題解決簡單總結如下。

一、基本升級操作

1. 獲取Struts2.3.15.1jar包

從Struts官網下載struts2.3.15.1發布包:

http://apache.fayea.com/apache-mirror//struts/library/struts-2.3.15.1-lib.zip

2.工程中的jar包替換

以下清單為示例,請根據工程實際情況參照替換成struts-2.3.15.1-lib.zip包中的版本:

原始版本(版本號為示例)

升級后版本

commons-lang-2.*.jar

commons-lang-2.4.jar

commons-lang3-3.1.jar (新增)

commons-logging-1.*.jar

commons-logging-1.1.3.jar

commons-fileupload-1.*.*.jar

commons-fileupload-1.3.jar

freemarker-2.3.*.jar

freemarker-2.3.19.jar

ognl-*.*.*.jar

ognl-3.0.6.jar

struts2-core-2.*.*.*.jar

struts2-core-2.3.15.1.jar

struts2-sPRing-plugin-2.*.*.*.jar

struts2-spring-plugin-2.3.15.1.jar

struts2-dojo-plugin-2. *.*.*.jar

struts2-dojo-plugin-2.3.15.1.jar

struts2-dwr-plugin-2. *.*.*.jar

struts2-dwr-plugin-2.3.15.1.jar

xwork-core-2.3.*.*.jar或者xwork-2.*.*.jar

xwork-core-2.3.15.1.jar

javassist-3.*.*.GA.jar

javassist-3.11.0.GA.jar

aspectjrt-1.5.2a.jar(見附件3.其它jar包)

aspectjweaver-1.5.2a.jar(見附件3.其它jar包)

(這三個文件若沒有則需添加)

注1:工程中以struts2打頭的jar包均需替換為2.3.15.1版本;

注2:除非表格中另有說明,則原始版本中若不存在相應jar包,則也不需要添加相應的2.3.15.1版jar包;

3.web.xml可能的修改

注意:如文件中原本已是調整后的配置,則請忽略本部分內容。

3.1修改struts2dispatcher過濾器

原始內容:

<filter>

<filter-name>struts2</filter-name>

<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>

</filter>

修改后內容:

<filter>

<filter-name>struts2</filter-name>

<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

</filter>

3.2去掉或注掉ActionContextCleanUp過濾器

請去掉或注掉web.xml中ActionContextCleanUp過濾器:

<!--filter>

<filter-name>struts-cleanup</filter-name>

<filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>

</filter-->

<!--filter-mapping>

<filter-name>struts-cleanup</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping-->

注意:不修改可能導致第二節中問題5。

4.所有*validators.xml可能的修改

注意:如文件中原本已是調整后的配置,則請忽略本部分內容。

4.1標簽頭的調整

原始內容:

<!DOCTYPEvalidatorsPUBLIC

"-//OpenSymphonyGroup//XWorkValidatorConfig1.0//EN"

"http://www.opensymphony.com/xwork/xwork-validator-config-1.0.dtd">

修改后內容:

<!DOCTYPEvalidatorsPUBLIC

"-//ApacheStruts//XWork Validator Config 1.0//EN"

"http://struts.apache.org/dtds/xwork-validator-config-1.0.dtd">

注意:不修改可能導致第二節中問題2。

二、常見問題及解決方案

1. NoClassDefFoundError:com/opensymphony/xwork2/util/TextUtils問題解決

現象:啟動報出以下錯誤

<2013-7-30 下午03時58分11秒 CST> <Error> <HTTP> <BEA-101020> <[ServletContext@13341578[app:piccallweb module:piccallweb path:/piccallweb spec-version:2.5]] Servlet failed with Exceptionjava.lang.NoClassDefFoundError:com/opensymphony/xwork2/util/TextUtils at com.googlecode.jsonplugin.SerializationParams.<init>(SerializationParams.java:38)at com.googlecode.jsonplugin.JSONResult.writeToResponse(JSONResult.java:194)at com.googlecode.jsonplugin.JSONResult.execute(JSONResult.java:184)at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:371)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:275)Truncated. see log file for complete stacktrace> 

原因:xwork-core-2.3.15.1.jar中由于升級現已去除com.opensymphony.xwork2.util.TextUtils。

解決方案:

1.替換jar包

原始版本

修改后版本

jsonplugin-0.**.jar

json-lib-1.1-jdk13.jar

struts2-json-plugin-2.3.15.1.jar

json-lib-2.3-jdk15.jar

struts2-junit-plugin--2.3.15.1.jar

2.所有*struts*.xml配置的extends="struts-default"改成extends="json-default"

2.啟動報com.opensymphony.xwork2.config.ConfigurationException問題解決

現象:啟動報出以下錯誤(僅截取了最上面和最下面的異常信息)

com.opensymphony.xwork2.config.ConfigurationException:Caught Exception while registering Interceptor classorg.apache.struts2.interceptor.validation.AnnotationValidationInterceptoratcom.opensymphony.xwork2.ObjectFactory.buildInterceptor(ObjectFactory.java:214) ~[xwork-core-2.3.15.1.jar:2.3.15.1]……Caused by:java.net.UnknownHostException:www.opensymphony.com atjava.net.InetAddress.getAllByName0(InetAddress.java:1157) ~[na:1.6.0_29]atjava.net.InetAddress.getAllByName(InetAddress.java:1083) ~[na:1.6.0_29]atjava.net.InetAddress.getAllByName(InetAddress.java:1019) ~[na:1.6.0_29]

原因:由于xwork升級,validator.xml的文件頭dtd配置需要做相應更新。

解決辦法:參見第四節中第(1)部分內容。

3. struts2的標簽報錯問題解決

現象:顯示頁面報錯:struts2的標簽使用出現問題,標簽中不支持表達式,如:EL表達式

 This attribute does not supportrequest time values.<s:select list="#{'':'','0':'否','1':'是'}"id="prpCmainProp.quakeFlag" name="prpCmainProp.quakeFlag"value="${prpCmainProp.quakeFlag}"

原因:struts2.3.15中使用s標簽,默認不支持表達式。

解決辦法:修改struts-tags.tld中所有的rtexprvalue標簽屬性為true。

<rtexprvalue>true</rtexprvalue>

4. Ajax異步調用中文參數后臺變亂碼問題解決

現象:前臺通過POST往后臺傳值時中文字符為亂碼

原因:struts2.3.15中org.apache.struts2.dispatcher.Dispatcher類prepare方法中新增了對于異步調用情況字符集強制轉換為UTF-8(見下方代碼),因此如果工程中jsp指定的字符集不是UTF-8,則中文傳至后臺會變成亂碼。

 if ("xmlhttpRequest".equals(request.getHeader("X-Requested-With"))) {     encoding = "UTF-8";}

解決辦法:改寫org.apache.struts2.dispatcher.Dispatcher類注掉上面三行內容

后直接放在工程源碼

5. ActionContextCleanUp is deprecatedWARNING問題解決

現象:系統啟動報“>>>ActionContextCleanUp<<< is deprecated! Pleaseuse the new filters!”WARNING

原因:從Struts2.1.3起廢棄了ActionContextCleanUp過濾器,其相關功能在StrutsPrepareAndExecuteFilter實現。

解決辦法:參見第三節中第(2)部分內容。

6. struts2TextFieldTagSelectTag等標簽required屬性報錯問題解決

現象:JSP報“contains no methods named setRequired”錯誤

原因:2.3.X版本中required屬性已替換為requiredLabel 解決辦法:批量替換標簽中的required為requiredLabel。

7. OGNL表達式問題解決

現象:部分系統中對com.opensymphony.xwork2.util.OgnlUtils.java和ognl.OgnlRuntime.java有單獨覆蓋,升級后存在不兼容現象

解決辦法:新的Ognl中已經修復了歷史OgnlUtils中存在的問題,所以刪除系統中OgnlUtils.java即可,ognl.OgnlRuntime.java這個文件按照新版本Ognl進行覆蓋修改

三、其它注意事項

為保證更新成功,請注意刪除工程在中間件中產生的臨時文件,以weblogic為例,WebLogicDomain下工程的緩存文件所在目錄可能包括但不限于以下位置:

    • [domain所在目錄]/servers/[server名]/tmp
    • weblogic.xml中配置的working-dir目錄

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东乌珠穆沁旗| 恭城| 遵义县| 宝山区| 竹溪县| 新巴尔虎右旗| 普定县| 尚志市| 元谋县| 新昌县| 甘谷县| 玛纳斯县| 临颍县| 韶山市| 凤庆县| 旬邑县| 德令哈市| 霸州市| 花莲市| 襄樊市| 安泽县| 祁阳县| 任丘市| 定兴县| 乐安县| 昭通市| 阿拉善右旗| 河津市| 老河口市| 东明县| 武安市| 绥棱县| 略阳县| 天等县| 泰顺县| 太保市| 太康县| 个旧市| 平武县| 双辽市| 衡阳县|