Tomcat9에서 사용하던 war파일 Tomcat10에서 배포하기 (Gaucamole 1.6.0)

리눅스/OS 일반|2025. 3. 17. 16:58
반응형

Java EE가 Eclipse 재단으로 이관되면서 Tomcat 10.0 버전부터 패키지 네임스페이스가 javax.* → jakarta.* 로 바뀌었습니다.

Guacamole 1.6.0은 javax.* 기반이라 Tomcat10(Jakarta)와 바로 호환되지 않습니다.

이럴때 두가지 해결책이 있습니다.

- Tomcat 9 사용하기

- 변환 도구를 이용해 war파일 패키지를 변환하기

 

여기에서는 변환 도구를 이용한 방법으로 Guacamole-1.6.0 파일을 변환해보겠습니다.

* jakartaee-migration-1.0.9-shaded.jar : 의존성까지 포함된 단일 실행 jar

 

 

1. 변환 받기

예시로 Guacamole-1.6.0.war 파일과 변환 도구를 다운로드 합니다.

# wget -O guacamole-1.6.0.war https://apache.org/dyn/closer.lua/guacamole/1.6.0/binary/guacamole-1.6.0.war?action=download

# curl -OL https://repo1.maven.org/maven2/org/apache/tomcat/jakartaee-migration/1.0.9/jakartaee-migration-1.0.9-shaded.jar

 

2. war 변환

형식) java -jar {변환 도구} {입력 파일} {출력 파일}

# java -jar jakartaee-migration-1.0.9-shaded.jar guacamole-1.6.0.war guacamole.war

 

3. 배포

# systemctl stop tomcat10

# rm -rf /var/lib/tomcat10/webapps/guacamole*     # 동일한 패키지명을 사용중이라면 삭제 (필요시 백업하세요)

# cp -arp guacamole.war /var/lib/tomcat10/webapps/

# systemctl start tomcat10

 

4. 확인

# curl -I http://{서버IP}:8080/guacamole/

 

* 참고

변환 도구는 javax.* → jakarta.* 치환을 해주지만, 서드파티 라이브러리 호환성 때문에 100% 보장되진 않습니다.

Guacamole 1.6.0은 공식적으로 Tomcat 9(서블릿 4/javax.*)을 권장합니다. 가능하면 Tomcat 9 사용이 가장 안정적입니다.

서명 검증이 필요하면 .asc로 PGP 검증을 하거나, 최소한 sha1/md5 해시를 확인하세요.

 

반응형

댓글()