Notice
Recent Posts
Recent Comments
Link
«   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
Tags
more
Archives
Today
Total
관리 메뉴

DOing

[AWS] Spring 프로젝트 배포 본문

AWS

[AWS] Spring 프로젝트 배포

mangdo 2021. 4. 20. 16:08

이전 포스팅과 이어지는 포스팅입니다.

2021.04.20 - [AWS] - [AWS] EC2에 스프링 프로젝트 배포 준비하기

 

[AWS] EC2에 스프링 프로젝트 배포 준비하기

EC2에 스프링 프로젝트를 배포하기 위해서는 우선 Java8을 설치하고, 자바환경 변수를 설정하고, 타임존을 변경해야한다. 이는 이전 포스팅을 참고하면 할 수 있다. 2021.04.12 - [분류 전체보기] - EC2

doing7.tistory.com

 

[ Git으로 프로젝트 가져오기 ]

 

1. git 설치

깃헙에서 코드를 받아올 수 있게 EC2에 git을 설치한다.

sudo yum install git

2. 새 디렉토리 생성

git clone으로 프로젝트를 저장할 디렉토리 생성하고 생성된 디렉토리로 이동한다.

mkdir ~/app
mkdir ~/app/step1
cd ~/app/step1

3. git clone

깃헙 리포지토리에서 주소를 복사해온 후에 git clone을 진행한다.

git clone (깃헙 리포지토리 주소)

* 특정 브랜치만 clone

git clone -b { 브랜치명 } --single-branch { 리포지토리 주소 }

 

[ 프로젝트 수정 ]

1. root-context.xml 수정

Github에서 받아온 스프링 프로젝트에는 local에 맞춰 DB세팅을 해놓은 상태이다.

이를 만들어놓은 RDS에 맞게 변경을 해야한다.

엔드 포인트, 계정, 계정비밀번호 수정

[ 배포 ]

1. clean

pom.xml이 있는 디렉토리로 이동후 명령어를 입력한다.

clean 으로 이전 빌드에서 생성 된 모든 파일을 제거하는 명령어이다.

mvn clean

mvn clean 성공

2. package

컴파일하고 war 배포 형식으로 패키지한다.

mvn package

 

[WARNING] Using platform encoding (MS932 actually) to copy filtered resources, i.e. build is platform dependent!

더보기

pom.xml을 수정해서 인코딩을 UTF-8로 바꾼다.

<properties>
	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>  
</properties>
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>2.5.1</version>
  <configuration>
    <source>1.8</source>
    <target>1.8</target>
    <compilerArgument>-Xlint:all</compilerArgument>
    <showWarnings>true</showWarnings>
    <showDeprecation>true</showDeprecation>
    <encoding>UTF-8</encoding>
  </configuration>
</plugin>

 

이렇게 까지했는데도 아직 unmappable character for encoding UTF-8 에러가 나는 것이 있다면

에러가 나는 해당 파일을 다 찾아서 내용을 확인하고, 하나씩 인코딩을 변경해준다.

 

[ 파일 인코딩 변경 방법 ]

> file -bi 파일명

text/plain; charset=iso-8859-1

> iconv -c -f so-8859-1 -t utf-8 파일명 > 파일명

package 성공

 

3. tomcat에 war파일 등록

위의 사진에 있는 로그를 자세히 보면 만들어진 war파일의 위치를 알려주고 있다.

Building war : ~~ PhoneMall/target/spring-1.0.0-BUILD-SNAPSHOT.war

이렇게 만들어진 war파일을 tomcat에 등록시켜야 해당 IP로 접속했을 때 내가 만든 스프링 프로젝트가 뜨게된다.

이를 위해서 server.xml을 수정하자.

 

sudo vim /etc/tomcat/server.xml

<Connector port="8080">아래에 있는 <host name= "localhost"></host>안에 추가한다.

<Context docBase="spring-1.0.0-BUILD-SNAPSHOT" path="/" reloadable="true" source="org.eclipse.jst.jee.server:spring-1.0.0-BUILD-SNAPSHOT.war"/>

수정된 server.xml

 

 4. war파일 이동

tomcat이 찾을 수 있는 위치로 war파일을 이동시켜야한다.

그 전에 war파일이 어디에 위치하고 있는지 확인해보자.

cd ~/app/step1/shoppingMallProject/PhoneMall/target

war파일을 이동시킨다.

sudo mv ~/app/step1/shoppingMallProject/PhoneMall/target/spring-1.0.0-BUILD-SNAPSHOT.war /usr/share/tomcat/webapps

 

war파일이 제대로 위치했는지 확인해보자.

cd /usr/share/tomcat/webapps

 

5. 톰캣 시작

sudo service tomcat start

요청을 확인해보자.

curl http://127.0.0.1:8080

여기까지 제대로 된다면 이번엔 브라우저에서 직접 접속해본다.

http://(public IP주소):8080

만들어놓은 스프링 프로젝트가 뜬다!