일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 말 더듬
- 핑거스타일
- nginx
- DBMS 구성요소
- DBMS
- SQL 처리
- 신입
- 6학년 8반 1분단
- 봄 사랑 벚꽃 말고
- 슬픔의 후에
- 천공의 시간
- 장범준
- 아이유
- IT
- Inside Of Me
- 개발자
- 레이디스코드
- 니가 참 좋아
- oracle
- db
- 악보
- 스위트라떼
- 기타
- 오라클 아키텍처
- I'm fine thank you
- 데이터베이스
- index
- 오라클
- 러블리즈
- 인덱스
취미로 음악을 하는 개발자
[Spring Boot] war 파일 배포 본문
bootJar
: 실행 가능한 jar파일에서 jsp가 동작하지 않는 제약점이 있어서 사용 x
bootWar
: 외장 톰캣 엔진이 포함되서 만들어짐, 실행 가능한 war파일에서 jsp가 제대로 동작함
war
: 외부 톰캣 서버에 배포될 것이므로, 내장에 톰캣 서버가 필요가 없어서 떼어낸 것
실행 화면
먼저 Gradle Tasks 창을 켜주면 위와 같은 창을 볼 수 있다.
여기서 bootwar를 해준다.
어느 정도 시간이 지나면 맨 마지막 줄의 출력이 뜨고 빌드가 완료된다.
빌드가 정상적으로 완료되면 프로젝트 폴더/build/libs 에 가면 war 파일이 나온 것을 볼 수 있다.
명령 프롬포트 창을 키고 war 파일이 있는 폴더로 들어가서
java -jar 파일이름.war 를 해준다.
실행하면 위와 같이 이클립스에서 했던 것처럼 서버가 켜진 것을 볼 수 있다.
/uploadForm 으로 들어가서 파일을 업로드 해보면 아래와 같이 실행은 되지만 에러가 나온다.
실행가능한 war 파일 안에서 파일을 꺼내어 볼 수 있지만, 그 안에 파일을 업로드를 할 수 없기 때문에 에러가 뜬다.
다시 서버를 끄고 프로젝트 파일에서 build 폴더를 삭제해준다. (새로 만든건지 원래 있던 건지 구분하기 위해)
그리고 bootwar를 했던 것처럼 이번에는 war를 실행해준다.
아까는 build/libs 폴더가 만들어졌지만 이번에는 build 폴더까지만 만들어진 것을 볼 수 있다.
bootWar와 war로 나눠지면서 제대로 생성이 안되는 에러가 있다.
따라서 build.gradle 코드에서 아래 23,24번 줄의 코드를 추가해준다.
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 31 32 33 34 35 | plugins { id 'org.springframework.boot' version '2.1.7.RELEASE' id 'io.spring.dependency-management' version '1.0.8.RELEASE' id 'java' id 'war' } group = 'com.study' version = '0.0.1-SNAPSHOT' sourceCompatibility = '1.8' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } ext['tomcat.version'] = '8.5.38' bootWar.enabled = false war.enabled = true dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat' testImplementation 'org.springframework.boot:spring-boot-starter-test' implementation 'javax.servlet:jstl' implementation 'org.apache.tomcat.embed:tomcat-embed-jasper' compile fileTree(dir: 'libs', include: ['*.jar']) } | cs |
그 후에 다시 war를 실행해주면 아래와 같이 정상적으로 Task가 처리되고 libs 폴더도 만들어진다.
이제 libs 안에서 다시 만들어진 war 파일을 톰캣 서버에 옮겨서 실행해 볼 것이다.
apache 톰캣 폴더/webapp 폴더로 war파일을 복사해준다.
파일 이름이 길면 서버 접속 때 주소가 길어지므로 간단하게 바꿔준다. ex) FileUpload
다시 cmd를 켜서 apache 톰캣 폴더/bin에 들어가서 startup.bat을 실행시켜준다.
여러 창이 뜨면서 서버가 실행되고 정상적으로 켜지면 위와 같이 폴더가 생긴다.
폴더 안은 위와 같이 구성되어 있다.
* 필자는 이전에 톰캣 설정 때, 8090으로 한적이 있어서 8090으로 실행한 것임.
파일 업로드 페이지로 들어가서 이전과 같이 업로드를 해보면
업로드를 하면 정상적으로 결과가 출력되고 static/upload 폴더에 업로드가 된다.
'공대인 > Spring[Boot]' 카테고리의 다른 글
[Spring Framework] Hibernate (0) | 2019.09.27 |
---|---|
[Spring Framework] JPA 및 관련 개념 (0) | 2019.09.09 |
[Spring Boot] 외부 jar 사용하기 (FileUpload, Json) (2) | 2019.08.29 |
[Spring Boot] Webjars (0) | 2019.08.29 |
[Spring Boot] Security Taglibs, Database (2) | 2019.08.26 |