전자정부표준프레임워크

Spring Boot에서 jar 배포시 jsp 동작하지 않을때

무한열정 2022. 8. 10. 11:12

■ 가장 쉬운 방법

build.gradle , pom.xml을 수정하여 war로 배포한다.

다음과 같이 크게 힘들이지 않고 구동이 가능하다.

java -jar 명령으로 구동시 반드시 jar 이어야 할것 같지만 war도 구동이 된다. ^^

java -jar 부트앱.war

스프링 문서에 jar에 대한 제약사항이 기술 되어 있다.

https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#web.servlet.embedded-container.jsp-limitations

 

 

■ jar 파일로 배포시 특이사항

부트앱 jar 파일이 존재하는 곳에

/src/main/webapp/WEB-INF/jsp 경로가 존재하는 경우

Spring Boot 앱에서 찾기때문에 이경우도 구동이 가능하다.

* 이경우는 jsp 구동이 가능은 하나 jar파일 외부에 jsp 리소스가 존재해야 하기 때문에 크게 의미가 있지는 않다.

 

■ Boot에서 war 배포 방법

maven 사용시 pom.xml에 spring-boot-maven-plugin를 추가한다.

<build>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
      <configuration>
        <excutable>true</excutable>
        <excludes>
          <exclude>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
          </exclude>
        </excludes>
      </configuration>
    </plugin>
  </plugins>
</build>

전자정부 표준프레임워크를 사용하는 경우

Logging 관련 충돌을 막기위해 다음 내용이 추가되야 할수도 있다.

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
  <exclusions>
    <exclusion>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-logging</artifactId>
    </exclusion>
  </exclusions>
</dependency>

1. Eclipse에서 Maven Clean

Run As > Maven Clean 

2. Eclipse에서 Maven Build

Run As > Maven Build 선택후에

"clean package"를 입력하고 [Run]한다.