티스토리 뷰

프로젝트를 하다 보면 생각지도 많은 요건들이 튀어나온다. Springboot Framework을 써서 개발을 했는데 이걸 다른 WAS를 사용해서 기동을 하고 싶다는 요건도 있었다. Springboot는 내장 WAS를 사용하고 있는데 굳이 이걸 두고 다른 WAS를 사용하는게 이해는 잘 안가지만 뭐 어쩌겠나.. 예전에 썼던 Spring 프로젝트를 Springboot로 전환하기 의 거꾸로 된 버전이라고 할 수 있겠다. 거꾸로는 생각보다는 간단했다. 


pom.xml 변경

spring-boot-starter-tomcat의 scope를 provided로 변경을 해야 한다. 만약 내가 spring-boot-starter-tomcat을 dependency로 선언을 안했어도 이거는 기본으로 되어 있는거라 scope 변경을 하려면 선언을 해줘야 한다. 

<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-tomcat</artifactId> 
    <scope>provided</scope> 
</dependency>

또한 springboot에서는 빌드 패킹으로 jar를 사용하므로(war를 사용할수도 있음) 외부 WAS에서 기동시키기 위해서 war로 packing을 하도록 한다. war로 packing 하는것은 마찬가지로 pom.xml에서 한다. 

<artifactId>sample-project</artifactId>
<name>sample-project</name>
<packaging>war</packaging>

application.java (springboot main 클래스)

@SpringBootApplication
public class Application extends SpringBootServletInitializer {
    public static void main(String[] args) {
        SpringApplication application = new SpringApplication(Application.class);
        application.run(args);
    }
    
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Application.class);
    }
}

springboot의 main 클래스에서는 위와 같이 SpringBootServletInitializer를 상속받아서 configure를 Override해 구현해 준다. 기존의 main메서드만 작성하던 것에서 이만큼 추가해주면 된다. 

 

이정도 해주면 외부 WAS에서 실행 가능한 war 파일을 만들어 낼 수 있다. 

 

maven > install 을 해서 war 파일을 만들고 이것을 Deploy 해서 WAS에 올려서 기동을 해보자. 

tomcat에 war 파일 올려서 기동시키는 예제는 다음 글을 참조하도록 하자. 

 

 

Tomcat에 WAR 파일 배포해서 기동하기

이클립스를 사용하면 어플리케이션을 WAR로 빌드를 할 필요도, Tomcat에 배포를 할 필요도 없어서 이런 빌드 및 배포에 대한 개념을 잡기 어렵다. 이클립스의 편리함을 잠시 버리고 직접 서버에서

oingdaddy.tistory.com

 

끝!

댓글
최근에 올라온 글
최근에 달린 댓글
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30