: Struts 2.3.15.1 업그레이드 총괄
8189 단어 struts2
모두 가 알 고 있 는 이유 로 struts 2 와 관련 된 프로젝트 는 struts 2 관련 가방 을 2.3.15.1 로 업그레이드 해 야 합 니 다.지금 은 업그레이드 방법 과 흔히 볼 수 있 는 문제 해결 을 간단하게 요약 하면 다음 과 같다.
1. 기본 업그레이드 작업
1. Struts 2.3.15.1jar 패키지 획득
struts 홈 페이지 에서 struts 2.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 - lang 3 - 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: 프로젝트 에서 struts 2 로 시작 하 는 jar 패 키 지 는 모두 2.3.15.1 버 전 으로 교체 해 야 합 니 다.
주 2: 표 에 따로 설명 이 있 는 경 우 를 제외 하고 원본 버 전에 해당 하 는 jar 가방 이 존재 하지 않 으 면 해당 하 는 2.3.15.1 판 jar 가방 을 추가 할 필요 가 없습니다.
3. 웹. xml 가능 한 수정
메모: 파일 에 원래 조 정 된 설정 이 있 으 면 이 부분의 내용 을 무시 하 십시오.
3.1 struts2dispatcher 필터 수정
원본 내용:
수정 후 내용:
3.2 Action ContextCleanUp 필 터 를 지우 거나 지우 기
웹. xml 에서 ActionContextCleanUp 필 터 를 지우 거나 주석 을 달 아 주 십시오:
주의: 수정 하지 않 으 면 2 절 에 문제 가 생 길 수 있 습 니 다.
4. 모든 * vaidators. xml 가능 한 수정
메모: 파일 에 원래 조 정 된 설정 이 있 으 면 이 부분의 내용 을 무시 하 십시오.
4.1 라벨 헤드 의 조정
원본 내용:
"-//OpenSymphony Group//XWork Validator Config 1.0//EN"
" http://www.opensymphony.com/xwork/xwork-validator-config-1.0.dtd ">
수정 후 내용:
"-//ApacheStruts//XWork Validator Config 1.0//EN"
" http://struts.apache.org/dtds/xwork-validator-config-1.0.dtd ">
주의: 수정 하지 않 으 면 2 절 에 문제 가 생 길 수 있 습 니 다.
2. 흔히 볼 수 있 는 문제 와 해결 방안
1. NoClassDefFoundation 오류: com / opensymphony / xwork 2 / 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 Exception
java.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. xwork 2. 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. xwork 2. config. configuration 예외 문제 해결
현상: 다음 과 같은 오 류 를 시작 합 니 다. (맨 위 와 맨 아래 의 이상 정보 만 캡 처 했 습 니 다)
com.opensymphony.xwork2.config.ConfigurationException:Caught Exception while registering Interceptor classorg.apache.struts2.interceptor.validation.AnnotationValidationInterceptor
atcom.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 업그레이드 로 인해 vaidator. xml 의 파일 헤드 dtd 설정 은 업데이트 가 필요 합 니 다.
해결 방법: 제4 절 중 제 (1) 부분 내용 참조.
3. struts 2 의 라벨 오류 해결
현상: 페이지 오류 표시: struts 2 탭 사용 에 문제 가 있 습 니 다. 탭 에 표현 식 이 지원 되 지 않 습 니 다. 예 를 들 어 EL 표현 식 입 니 다.
This attribute does not supportrequest time values.
<s:select list="#{'':'','0':' ','1':' '}"id="prpCmainProp.quakeFlag" name="prpCmainProp.quakeFlag"value="${prpCmainProp.quakeFlag}"
원인: struts 2.3.15 에 s 탭 을 사용 합 니 다. 기본적으로 표현 식 은 지원 되 지 않 습 니 다.
해결 방법: struts - tags. tld 의 모든 rtexprvalue 태그 속성 을 true 로 수정 합 니 다.
4. ajax 비동기 호출 중국어 매개 변수 백 엔 드 디 코딩 문제 해결
현상: 프론트 데스크 톱 이 POST 를 통 해 백 스테이지 로 값 을 전송 할 때 중국어 문자 가 어 지 럽 습 니 다.
원인: struts 2.3.15 에서 org. apache. struts 2. dispatcher. dispatcher 류 prepare 방법 에 비동기 호출 상황 문자 집합 을 UTF - 8 (아래 코드 참조) 로 강제 변환 하 는 방법 이 추가 되 었 습 니 다. 따라서 프로젝트 에서 jsp 가 지정 한 문자 집합 이 UTF - 8 이 아니라면 중국어 가 배경 으로 전 달 됩 니 다.
if ("XMLHttpRequest".equals(request.getHeader("X-Requested-With"))) {
encoding = "UTF-8";
}
해결 방법: org. apache. struts 2. dispatcher. dispatcher 류 를 바 꾸 어 위의 세 줄 내용 을 주석 합 니 다.
공사 원본 에 직접 넣 습 니 다.
5. ActionContextCleanUp 은 회수 되 지 않 습 니 다. 경고 문제 해결
현상: 시스템 시작 신문 "> > ActionContextCleanUp < < is deprecated! Pleaseuse the new filter!" 경고
원인: Struts 2.1.3 부터 Action ContextCleanUp 필 터 를 폐 기 했 습 니 다. 관련 기능 은 Struts Prepare AndExecute Filter 에서 이 루어 집 니 다.
해결 방법: 제3 절 중 제2 부분 을 참조한다.
6. struts 2 의 TextFieldTag 와 SelectTag 등 태그 required 속성 오류 해결
현상: JSP 신문 "contains no methods named setRequired" 오류
원인: 2.3. X 버 전에 서 required 속성 이 required Label 솔 루 션 으로 바 뀌 었 습 니 다. 탭 의 required 를 required Label 로 대량 교체 합 니 다.
7. OGNL 표현 식 문제 해결
현상: 일부 시스템 에 서 는 com. opensymphony. xwork 2. util. OgnlUtils. java 와 ognl. OgnlRuntime. java 를 단독으로 덮어 씁 니 다. 업그레이드 후 호 환 되 지 않 는 현상 이 있 습 니 다.
해결 방법: 새로운 Ognl 에서 과거 OgnlUtils 에 존재 하 는 문제점 을 복 원 했 기 때문에 시스템 에 있 는 OgnlUtils. java 를 삭제 하면 됩 니 다. ognl. OgnlRuntime. java 이 파일 은 새 버 전 Ognl 에 따라 덮어 쓰 고 수정 합 니 다.
3. 기타 주의사항
업데이트 에 성공 할 수 있 도록 프로젝트 가 미들웨어 에서 발생 하 는 임시 파일 을 삭제 하 는 것 을 주의 하 십시오. weblogic 를 예 로 들 면 WebLogic Domain 에서 프로젝트 의 캐 시 파일 이 있 는 디 렉 터 리 는 다음 과 같은 위치 에 포함 되 지만 이에 국한 되 지 않 습 니 다.
[domain 소재 디 렉 터 리] \ \ server \ [server 명] \ tmp weblogic. xml 에 설 정 된 working - dir 디 렉 터 리
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
apache struts2 취약점 검증이번에는 보안 캠프의 과제였던 apache struts2의 취약성에 대해 실제로 손을 움직여 실행해 보고 싶습니다. 환경 VirtualBox에서 브리지 어댑터 사용 호스트:macOS 10.12 게스트:ubuntu 1...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.