tomcat 배포 문제 war? jar?
안녕하세여 강의듣다가 현재 진행중인 프로젝트를 tomcat에 올려볼까 시도하고 있는데 잘안되서 여쭤봅니다. gradle 프로젝트이고 .jar -> .war으로 변환해서 올리고있는데 404에러가뜹니다.
maven 프로젝트로만 사용해야되는 건가요 ?
답변 1
0
안녕하세요, 이도원입니다.
Spring Boot 애플리케이션을 외부 Tomcat으로 기동하기시 위해서는 소스를 조금 수정하셔야 합니다.
Application 파일을 아래와 같이 수정합니다.
@SpringBootApplication
public class MyRestfulServiceApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(MyRestfulServiceApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(MyRestfulServiceApplication.class);
}
}pom.xml 파일에 Dependency를 확인합니다. (아래 내용이 없으면 추가합니다)
...
<packaging>war</packaging>
...
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>Maven에 대한 예시를 드렸는데, Gradle 도 유사하게 작업하시면 됩니다.
apply plugin: 'war'
...
dependencies {
... // war 패지키 파일 생성시 톰캣 라이브러리를 포함하지 않도록 추가 해야 합니다.
providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
}패키징 된 war 파일을 Tomcat 폴더에 복사합니다.
<TOMCAT_HOME>/webapps 폴더에 war 파일을 복사하고, 톰캣을 기동하면, war 파일의 이름으로 폴더가 생성되는데, API 호출 시, http://localhost:8080/<패키징된파일의폴더명>/<api> 이렇게 호출하시면 됩니다. 예를들어, embedded tomcat에서 http://localhost:8080/hello-world로 호출하셨다면, my-restful-service.war 파일의 경우 외장 톰캣에서는 http://localhost:8080/my-restful-service/hello-world 이런식으로 호출하시면 됩니다.
만약 위와 같은 방법으로 했을 때에도, 404 오류가 발생한다면, 작업하신 JDK 버전과 Tomcat의 버전이 서로 호환되는지 확인해 보셔야 할 것 같습니다. 만약 Java17 + Spring Boot 3 버전으로 테스트 중이라면, Tomcat9 버전이 아닌 Tomcat 10나 Tomcat 11 버전으로 테스트해 보시기 바랍니다.
감사합니다.
git 에 강의내용에 필요한 파일들 존재하지 않음
0
84
2
젠킨스에 등록된..
0
98
2
필요한 파일만 가지고 배포할 수 있나요?
0
91
2
yml 파일 db 접속정보 수정 후 배포 시 미반영
0
108
2
jdk 버전 17
0
81
2
섹션2 강의자료
0
103
2
DOCKER 이미지 PULL
0
266
1
36강 edowon0623/cicd-project-ansible이 호환이 안되는것 같아요
0
63
1
질문이 있습니다!!
0
68
1
exec /usr/local/tomcat/bin/catalina.sh: invalid argument 오류 해별법(공유)
1
203
4
m2 mac: ansible-server에서 container 실행 안됨
0
159
2
Jenkins와 k8s 연동과 관련한 질문입니다.
0
97
2
Ansible 과 연동에서 이미지 및 컨테이너 생성과 관련한 질문 드립니다.
0
176
2
맥북 실리콘칩 invalid argument 에러 해결 (수동 설치)
0
255
3
Docker Container에서 Tomcat 설치
0
221
2
ec2 여러대에서 각각 직접 설치 이유
0
154
1
P@ssw0rd 설정시기
0
147
2
ansible 원리
0
135
2
ansible 존재여부
0
116
2
젠킨스 빌드 성공후 shutdown
0
249
2
Docker Hub에 Push 무한 로딩
0
120
2
컨테이너에 ssh로 접속 비밀번호 불일치
0
117
1
maven project 오류
0
118
2
엔서블을 이용하여 톰캣 이미지 배포 후, 되돌리는 방법
0
150
2





