250530

2025. 5. 30. 14:08·Web

[주저리]

MSA - 하나의 프로젝트에서 여러개의 독립적인 서비스를 제공하는 방식

ex) CMS(war)에서 소켓통신 1:1채팅(jar)

      ERP(war, Oracle)에서 배송에대한 택배기사 배송현황(jar, Mysql), 고객이 송장번호를 입력(jar, Mysql)

1. 여러개의 데이터베이스를 선택적으로 사용가능함

2. 독립적인 서비스를 구축할 수 있음 (API)

3. .jar => src/main/webapp/.jsp 이거 못씀 작동 안함

     jar안에 대시보드가 포함되게 됨 => 포트를 오픈 => 자체구조로 돌아가는 프로세서가 있음 //말그대로 WAS가 없어도 됨 자바vm형태로작동함

 

면접의 핵심 : 달달달 외운게 아니라 쉽게 설명해서 꼬리 안잡히기

 

[properties vs yml]

properties    라이브러리 경로 = 속성값

    라인별로 직관적인 문법사용 

yml    라이브러리 경로 : 속성값

    계층구조이며, 들여쓰기 형태 띄어쓰기 주의해야함

 

[.jar]

.jsp MVC 형태 => 권장사항이아님 (공식사이트피셜)

 - spring-boot (v.2.0 ~ 3.0) => src/main/webapp => .jsp 화면

 - spring-boot (v.3.1 ~) => src/main/webapp => .jar 패킹 => .jsp 출력안됨

jsp쓰려면 버전 낮추던가 다른 방식을 찾기

 

 

 

[의존성 찔끔 추가]

[메이븐리포지토리]

JSP, JSTL

https://mvnrepository.com/artifact/jakarta.servlet.jsp.jstl/jakarta.servlet.jsp.jstl-api/3.0.2

JSP, JSTL

https://mvnrepository.com/artifact/org.glassfish.web/jakarta.servlet.jsp.jstl/3.0.1

 

jsp-server core

https://mvnrepository.com/artifact/org.apache.tomcat.embed/tomcat-embed-jasper/11.0.7

 

JSON

https://mvnrepository.com/artifact/org.json/json/20240303

 

[빌드]

프로젝트 우클릭 > Run as... > 

파랗게된거 클릭하면 빌드됨

 

또는 그레이들 태스크 윈도우를 열어서 빌드하기

 

프로젝트 경로의 빌드 > libs 경로에 jar 파일 생김

/Users/nayeong/Documents/projects/msa_api/site.msa/build/libs

플레인은 필요없음 => 플레인 안붙은거 사용하기

대시보드 꼭 끄기 포트충돌남

 

[jar에서 jsp강제실행]

[가짜버전]

#이렇게 도메인을 각각 잡을수있음 => 독립적으로 돌아갈수있음  
#domain : api.abc.co.kr
spring:
  application:
    name: site.msa
  devtools:
    restart:
      enabled: true
  mvc:
    view:
      prefix: /WEB-INF/jsp/
      suffix: .jsp
  servlet:
    multipart:
      enabled: true
      max-file-size: 100MB
      max-request-size: 1000MB
server:
  port: 8080
  servlet:
    encoding:
      charset: utf-8
      force-response: true
      enabled: true
    jsp:
      init-paremeters:
        development: true

이렇게 폴더를 구성해서 jsp 넣기 

//webapp의 WEB-INF에서는 절대 jsp안돌아감 

 

이렇게 해서 빌드해서 실행해보기

아... 또 구라임 실행안됨

[가짜버전2]

#이렇게 도메인을 각각 잡을수있음 => 독립적으로 돌아갈수있음  
#domain : api.abc.co.kr
spring:
  application:
    name: site.msa
  devtools:
    restart:
      enabled: true
  mvc:
    view:
      prefix: /
      suffix: .jsp
  servlet:
    multipart:
      enabled: true
      max-file-size: 100MB
      max-request-size: 1000MB
server:
  port: 8080
  servlet:
    encoding:
      charset: utf-8
      force-response: true
      enabled: true
    jsp:
      init-paremeters:
        development: true

빌드 

어 또 안돼~ 

 

⭐️ 환경설정을 바꿨을때 적용시켜야함 바로패킹하면 안됨 한번이라도 돌아가고 패킹되어야함

대시보드로 돌리고 빌드하기 

 

어 근데 안돼

[가짜버전3]

리소스파일에 jsp가 보이

 

jar로 만들때 실제로 jar안에 jsp가 있는지 작동이 잘되는지 확인

 

[가짜버전4]

속임수 필요

jar 방화벽작동해서 안됨

war로 속여야함

그레이들 리프레시

프로젝트 facet 5.0

 

bootWar가 생김

잠깐만스땁

더 세팅 필요

 

application.java 수정

package site.msa;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

@SpringBootApplication
public class Application extends SpringBootServletInitializer{
	
	@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
		return application.sources(this.getClass());
	}

	public static void main(String[] args) {
		SpringApplication.run(Application.class, args);
	}

}

 

서버 재시작하고 잘되면 끄고 빌드

이거로 빌드하기~!

war가 jar처럼 돌아감

 

아!@ 근데 안됨~!

 

[진짜]

빌드 그레이들 아이디 워

yml

#이렇게 도메인을 각각 잡을수있음 => 독립적으로 돌아갈수있음  
#domain : api.abc.co.kr
spring:
  application:
    name: site.msa
  devtools:
    restart:
      enabled: true
  mvc:
    view:
      prefix: /
      suffix: .jsp
  servlet:
    multipart:
      enabled: true
      max-file-size: 100MB
      max-request-size: 1000MB
server:
  port: 8080
  servlet:
    encoding:
      charset: utf-8
      force-response: true
      enabled: true
    jsp:
      init-paremeters:
        development: true

 

워로 빌드하고 jsp 경로는 webapp

 

 

 

[.jsp 사용방법 총정리]

권장하지 않는 방법이지만 굳이 하고싶다면

1. /src/main/resource를 이용하여 META-INF ㅁㄴㅇㄹ

2. ㅁㄴㅇㄹ

3. 문제는 .jsp가 .jar 패킹을 하게 되면 공식적으로는 출력(보안) not found 실행 

4. build.gradle => id='war' => /src/main/resource 라는 디렉토리 파일로 이동시켜 .jar 패킹을 하였을 경우 ㅁㄴㅇㄹ

5. application.java 수정 (추상클래스 로드)

6. Gradle Task에 bootWar가 생김 => 빌드하기

7. java -jar site.msa-0.0.1-SNAPSHOT.war    //war파일인데 jar처럼 돌아감 

 

레스트 컨트롤러만 있다면 bootJar로 하고

컨트롤러 있으면 war?

 

 

 

 

저작자표시 비영리 변경금지 (새창열림)
'Web' 카테고리의 다른 글
  • 프론트에서 계산한 값으로 정렬
  • 250602
  • yml파일로 세팅과 jar로 배포
  • @JsonIgnore와 @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
9na0
9na0
응애
  • 9na0
    구나딩
    9na0
  • 전체
    오늘
    어제
    • 분류 전체보기 (211)
      • Web (118)
      • Java (28)
      • 데이터베이스 (14)
      • 세팅 (12)
      • 과제 (3)
      • 쪽지시험 (2)
      • 정보처리기사 (4)
      • 서버 (25)
  • 블로그 메뉴

    • 링크

      • 포폴
      • 구깃
    • 공지사항

    • 인기 글

    • 태그

      exam1_1~10
      ab1
      Oracle
      noticewriteok
      re_java10
      net2
      notice_writer
      re2
      file25
      net4
      spring-boot
      datalist
      java_io1~10
      net1
      file25_t
      net3
      net5~10
      file24
      io_dto
      macbook pro m4
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    9na0
    250530
    상단으로

    티스토리툴바