From 8eae737de098c2ffaba79428e38eee2a01eedbf5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=98=84=EC=84=B1=ED=95=84?= Date: Tue, 7 Nov 2023 13:30:48 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9C=88=EB=8F=84=EC=9A=B0=20=ED=99=98?= =?UTF-8?q?=EA=B2=BD=20=EC=9A=94=EC=B2=AD=20=EA=B4=80=EB=A6=AC=20=EC=97=90?= =?UTF-8?q?=EB=9F=AC=20=EC=88=98=EC=A0=95,=20README.md=20=EB=B0=98?= =?UTF-8?q?=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 54 ++++++++++++++++++- build.gradle | 6 --- .../client/service/NettyApiClient.java | 3 +- start.bat | 1 + 4 files changed, 54 insertions(+), 10 deletions(-) create mode 100755 start.bat diff --git a/README.md b/README.md index ef7eab3..99ab82c 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,52 @@ -## jar 실행 예 -java -jar HTTPSimulator.jar +# 프로젝트 빌드 및 실행 가이드 + +이 문서는 simulator를 빌드하고 실행하기 위한 지침을 담고 있습니다. + +## 사전 요구 사항 + +- JDK 1.8 +- Gradle + +## 빌드 및 패키징 + +1. 윈도우 명령 프롬프트 또는 PowerShell을 엽니다. +2. 프로젝트 루트 디렉토리로 이동합니다. +3. 다음 명령어를 사용하여 프로젝트를 빌드합니다: + +```shell +gradlew clean bootJar +``` + +빌드 프로세스가 완료된 후, build/libs 디렉토리 안에 .jar 파일이 생성됩니다. + +## 실행 + +1. 윈도우 명령 프롬프트 또는 PowerShell을 엽니다. + +```shell +java -jar build/libs/HTTPSimulator.jar + +``` + +2. 애플리케이션을 중지하려면, 명령 프롬프트에서 'Ctrl + C' 를 누릅니다. + +## 요청 관리 주의 사항 + +1. 요청관리를 사용하기 위해서는 1개 이상의 서버가 등록되어 있어야 합니다. + +2. 요청 관리에서 "시뮬레이터 응답관리"에 등록된 목업 API를 호출 할 때는 등록된 uri와 동일하게 호출해야 합니다. + +예) + +| 응답관리 uri | 요청 관리 uri | 응답 | +|:-------------:|:-------------:|:------:| +| /api/v1/test | /api/v1/test | 200 OK | +| /api/v1/test/ | /api/v1/test/ | 200 OK | +| /api/v1/test/ | /api/v1/test | 404 | +| /api/v1/test | /api/v1/test/ | 404 | + +3. 요청 시에 URI에 대한 유효성 검사는 하지 않습니다. +요청 관리에서 send 시 기본경로와 API Path를 보이는대로 합쳐서 요청을 보냅니다. + +4. path 값이 없이 요청이 가능합니다. + diff --git a/build.gradle b/build.gradle index 564d3c3..99d7d47 100644 --- a/build.gradle +++ b/build.gradle @@ -2,23 +2,17 @@ plugins { id 'org.springframework.boot' version '2.7.16' id 'io.spring.dependency-management' version '1.1.3' id 'java' - id 'war' // id "org.sonarqube" version "4.2.1.3168" } bootJar.enabled = true jar.enabled = false -// WAS, 톰캣에 배포 시 BOOT 실행 요소 제거 배포 -bootWar.enabled = false -war.enabled = true - group = 'com.eactive' version = '2.0.0' sourceCompatibility = '1.8' targetCompatibility = 1.8 - configurations { annotationProcessor configureEach { diff --git a/src/main/java/com/eactive/httpmockserver/client/service/NettyApiClient.java b/src/main/java/com/eactive/httpmockserver/client/service/NettyApiClient.java index d027bc7..6fd3579 100644 --- a/src/main/java/com/eactive/httpmockserver/client/service/NettyApiClient.java +++ b/src/main/java/com/eactive/httpmockserver/client/service/NettyApiClient.java @@ -73,8 +73,7 @@ public class NettyApiClient { content = Unpooled.EMPTY_BUFFER; } - String basePath = server.getBasePath(); - String fullPath = Paths.get(basePath, apiRequest.getPath()).toString(); + String fullPath = server.getBasePath() + apiRequest.getPath(); HttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.valueOf(apiRequest.getMethod()), fullPath, content); diff --git a/start.bat b/start.bat new file mode 100755 index 0000000..8f1513e --- /dev/null +++ b/start.bat @@ -0,0 +1 @@ +java -jar build/libs/HTTPSimulator.jar \ No newline at end of file