
기존에 잘 사용중이던 톰캣의 버전을 업그레이드했다
마이너 업그레이드라서 간단하게 끝날 줄 알았는데 생각보다 시행착오를 거쳐서 기록해본다
톰캣 버전 업글 진행순서
1. 일단 톰캣 tar.gz 파일을 풀어줬고, 기존에 돌던 폴더를 백업했다.
2. 기존 폴더에서 ll -rt 해서 수정일이 다른 파일만 열어서 변경된 부분만
업그레이드하려는 톰캣폴더의 파일을 수정해줬다.
또 폴더를 보면서 수정된거나 추가된 게 있으면 모조리 다 cp -rp 해서 가져왔다
3. 후에는 bin 폴더에서 기존에 실행중이던거 죽이고 버전업한 폴더에서 실행시켜줬다
./shutdown.sh
./startup.sh
4. 로그 확인, 웹 url 접속해서 확인
tail -f logs/catalina.out
vi -R logs/catalina.out
그렇게 했는데 에러가 났다..
설정을 다시 확인해보니 똑같이 맞춰서 수정했다.
문제를 알기 위해선 톰캣 버전이 업글되면서 생긴 차이를 알아야 했다.
공식홈페이지에 마이그레이션 가이드라고 해서 잘 나와있었다.
공식문서 마이그레이션 가이드
https://tomcat.apache.org/migration-9.html#Migrating_from_8.0.x_or_8.5.x_to_9.0.x
Apache Tomcat® - Migration Guide - Tomcat 9.0.x
Please read the general Migration Guide page first, for common considerations that apply to migration or upgrade between versions of Apache Tomcat®. This section lists all the known changes between 8.0.x / 8.5.x and 9.0.x which may cause backwards compati
tomcat.apache.org
이슈1
# Forwarding to error page from request due to exception [javax.servlet.ServletException: java.lang.NoSuchMethodError: org.apache.jasper.runtime.JspRuntimeLibrary.releaseTag(Ljavax/servlet/jsp/target/Tag;Lorg/apache/tomcat/InstanceManager;Z)V]
에러 메세지가 NoSuchMethodError라서 뭐가 문젠가 했는데....
Jsp 어쩌고 적혀있어서 jsp파일이 문제인건가 뭐가 복사가 안됬나 하고 막막했었다
감도 안잡혀서 공식문서를 봤는데 "컴파일된 일부 JSP 파일 간에 바이너리 비호환성이 발생" 이란걸 보고서 유레카했다
이놈이랑 관련이 있겠군!!!
tomcat폴더에 work 폴더까지 복사해왔는데, 이 폴더는 찾아보니 캐시파일이라고 한다..
기존에 jsp 컴파일한 것을 사용해서 생긴 에러인듯
work 폴더에서 rm -rf * 하고 다시 톰캣 재시작을 했더니 해결됨.
톰캣 재시작했더니 work 폴더에 파일이 알아서 다시 생성됨
이슈 2
# AJP 연결자는 secretRequired="true" 로 구성되었으나 보안 속성이 널 또는 ""입니다. 이 조합은 유효하지 않습니다.
디폴트값이 버전 업되면서 바뀌었나보다.
이전에는 해당 옵션을 적어주지 않았고 디폴트값이 False였는데, 업글 하려는 버전에선 디폴트값이 True인 듯 하다
그래서 로그에서 해당 에러가 나는 포트번호로 검색해서 server.xml에서 해당 옵션을 추가해줬더니 해결 되었음
<Connector protocol="AJP/1.3" ... secretRequired="false" />
웹서버에서 뭐 설정해야 하는건가 싶어서 httpd 도 찾아봤는데 systemctl status httpd 했을 때 죽어있고 로그도 n년전이 찍혀있어서 사용하지 않는 것으로 보여서 멘붕이였었는데, 옵션 주지 않았을 때 디폴트값이 바뀌어서 생긴 에러였다~
교훈: 공식 홈페이지를 잘 읽자.. 다 나와있다
'IT지식' 카테고리의 다른 글
IntelliJ 유료 라이센스 만료 후 사용법 (2) | 2024.12.25 |
---|---|
홈서버 구축하기 (0) | 2024.12.22 |
설치파일 이름 (0) | 2024.12.15 |
파이썬에서 파일에 락(lock) 거는 방법 (0) | 2024.12.12 |
파이썬 2.x 버전 인코딩 설정 (euc-kr -> utf-8) (0) | 2024.12.12 |