AC 03/29 배포

Bae Seong Jun·2024년 3월 29일

Acorn academy

목록 보기
63/70

Spring boot WAR 배포

servlet, spring 과는 다르게 배포가 좀 빡쌤
jsp는 jar로 묶으면 실행이 안되는 문제가 있음.
그래서 war로 묶을 것임


1.
<packaging>war</packaging> 삽입 위치 중요

디펜던시 필요한거 있으면 추가

  • 내장톰켓 쓰게 하기 위한 디펜던시
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-tomcat</artifactId>
			<version>2.7.9</version>
		</dependency>
  • javax - jstl 사용 위한 디펜던시
		<dependency>
			<groupId>org.apache.tomcat.embed</groupId>
			<artifactId>tomcat-embed-jasper</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
		</dependency>


2.
war도 해당 설정 포함시켜야한다.
mybatis 안쓰면 안넣어도 됨. mybatis를 쓰는데 매퍼가 없을 경우를 위한 설정이다.

		<!--메퍼 누락방지 추가 -->
		<resources>
			<resource>
				<directory>src/main/resources</directory>
			</resource>
			<resource>
				<directory>src/main/java</directory>
				<includes>
					<include>**/*.xml</include>
				</includes>
			</resource>
		</resources>
        <!--메퍼 누락방지 추가 -->


3.
외부에서 실행되게 하게끔 하는 설정 추가
- 상속받기 SpringBootServletInitializer
extends SpringBootServletInitializer
- configure 오버라이드 및 수정

```
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
	// TODO Auto-generated method stub
	return builder.sources(Boot13Mvc1Jsp1Application.class);
}
```

Boot13Mvc1Jsp1Application.class)는 프로젝트명으로 삽입

  1. Run as -> 메이븐 빌드


  1. jre 11로 수정
  2. main 탭에 pom.xml지우고 package 입력


7. target 폴더에 생성된 war파일을 톰켓 9.* 폴더의 webapp으로 war에 배포

  1. server.xml에서 포트 8080->서비스포트로 변경(ex 8090)
  2. 빌드 후 실행시 war파일 이름 그대로 프로젝트 주소가 되므로, server.xml 설정을 통해 주소를 바꿀 수 있다.
    <Context docBase="boot13_MVC3_jsp_mybatis-0.0.1-SNAPSHOT" path="/app" reloadable="true"/>
    boot13_MVC3_jsp_mybatis-0.0.1-SNAPSHOT는 프로젝트 주소명을 입력하면 된다.

실행 : cmd에서 톰켓9->bin까지 이동 / startup 명령어로 실행

Spring boot JAR 배포

큰 특징 : tomcat 설정이 없다

참고로 h2 db에 접근하는 프로젝트는 따로 h2를 수동으로 띄워주고 시작해야한다.

  1. mybatis 쓸 경우
    매퍼 누락방지 설정 추가
		<!--메퍼 누락방지 추가 -->
		<resources>
			<resource>
				<directory>src/main/resources</directory>
			</resource>
			<resource>
				<directory>src/main/java</directory>
				<includes>
					<include>**/*.xml</include>
				</includes>
			</resource>
		</resources>
        <!--메퍼 누락방지 추가 -->
  1. 그냥 빌드

  2. 생성된 jar 파일은 단독실행이 된다.

  3. cmd -

  4. 해당 폴더까지 cd

  5. java -jar boot14_thymeleaf2__JPA_H2-0.0.1-SNAPSHOT.jar

AWS

로그인 까지


리눅스 명령어 연습
https://bellard.org/jslinux/
여기서 연습 대부분 됨

vi editor

자료 pt 참조

톰켓 편의성 설정

C:\apache-tomcat-9.0.72\webapps\manager\META-INF/context.xml
C:\apache-tomcat-9.0.72\webapps\host-manager\META-INF/context.xml
두 파일 다아래 구문 주석으로 막기

  <!--<Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->

C:\apache-tomcat-9.0.72\conf/tomcat-users.xml
맨아래의 </tomcat-users>의 바로 위쪽에 해당 설정 구문 추가
manager 권한 부여

<role rolename="manager-gui"/>
  <role rolename="manager-script"/>
  <role rolename="manager-jmx"/>
  <role rolename="manager-status"/>
  <user username="admin" password="admin" 
roles="manager-gui,manager-script,manager-jmx,manager-status"/>
  <user username="deployer" password="deployer" roles="manager-script"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>

http://localhost:8090/manager 로 접속하여 admin/admin을 입력하면
서버에서 서비스 중인 주소들을 관리할 수 있음

profile
코딩 프로?

0개의 댓글