반응형

gradle2 API server

간단하게 더하기 하는 API 서버.

프로젝트 초기화


mkdir addserver
cd addserver
gradle init
    application type
    나머지는 다 default
    source package: com.my.test

VC에서 "Add Folder to Workspace" 로 추가.

-------------
app/src/main/java/com/my/test/App.java 가 자동 생성됨.
필요없으니 삭제한다.

https://user-images.githubusercontent.com/6326475/141603735-225b687e-db86-4e7f-8bfe-7b95bcd744e0.png

웹 프로젝트 설정

  • 패키지명에 맞춰서 변경한다.
## 아래에서 ^Z전까지 복사하고, 컨트롤 Z를 수동으로 입력해 줘야 한다.

mkdir app\src\main\webapp\WEB-INF\views

copy con app\src\main\webapp\WEB-INF\web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
</web-app>
^Z

mkdir app\src\main\java\com\my\test\controller
copy con app\src\main\java\com\my\test\controller\Add.java
package com.my.test.controller;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;

@WebServlet("/add")
public class Add extends HttpServlet {

  @Override
  public void doGet(HttpServletRequest request, HttpServletResponse response)
  throws IOException,ServletException {
        process(request, response);
  }

  @Override
  public void doPost(HttpServletRequest request, HttpServletResponse response)
  throws IOException,ServletException {
        process(request, response);
  }

  public void process(HttpServletRequest request, HttpServletResponse response)
  throws IOException,ServletException {
        PrintWriter out = response.getWriter();
        out.write("hello");
    }
}
^Z

copy con app\src\main\webapp\WEB-INF\views\add.jsp
<html>
           <body>
               view page
           </body>
</html>
^Z

copy con app\src\main\webapp\index.jsp
<html>
    index page
    <p>
        context path: ${pageContext.request.contextPath}
    </p>
</html>
^Z

https://user-images.githubusercontent.com/6326475/141603860-a691f4b4-2049-4a4e-8261-9899759b6308.png

  • app/build.gradle
    • contextPath를 맞게 변경한다.
plugins {
    id 'war'
    id 'org.gretty' version '3.0.5'
}

repositories {
    // Use Maven Central for resolving dependencies.
    mavenCentral()
}

dependencies {
    // Use JUnit Jupiter for testing.
    testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.7.0'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0'

    compileOnly 'javax.servlet:javax.servlet-api:4.0.1'
    compileOnly 'javax.servlet.jsp:javax.servlet.jsp-api:2.3.3'

    // This dependency is used by the application.
    implementation 'org.apache.logging.log4j:log4j-api:2.13.1'
    implementation 'org.apache.logging.log4j:log4j-core:2.13.1'

    annotationProcessor 'org.apache.logging.log4j:log4j-api:2.13.1'
    annotationProcessor 'org.apache.logging.log4j:log4j-core:2.13.1'

    gretty 'org.apache.tomcat:tomcat-dbcp:9.0.13'
}

gretty {
    servletContainer = 'tomcat9'
    httpPort=8080
    contextPath = '/addserver'
    enableNaming = true
}
  • gitignore
    • 디폴트로 .gitignore가 생기는데, 형상관리에서 제외할 것들 설정.
**/.classpath
**/.project
**/.settings
**/.factorypath
.gradle
app/tomcat.8080
app/bin
app/build
*.swp
*.sublime-project
*.sublime-workspace
  • .vscode/tasks.json (task로 검색하여 생성하면 된다.)
    • 쉬프트 컨트롤 P ; task 입력. Tasks: Configure default build task - addserver 라고 있는 항목 선택
    • 아래 내용으로 교체.
{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Tomcat Start",
            "type": "shell",
            "command": "${workspaceRoot}/gradlew tomcatStart",
            "problemMatcher": "$msCompile",
            "group": {
                "kind": "build",
                "isDefault": true
            }
        },
        {
            "label": "Tomcat Debug",
            "type": "shell",
            "command": "${workspaceRoot}/gradlew tomcatStartDebug",
            "problemMatcher": "$msCompile"
        },
        {
            "label": "Tomcat Stop",
            "type": "shell",
            "command": "${workspaceRoot}/gradlew tomcatStop",
            "isBackground": true,
            "presentation": {
                "reveal": "never"
            },
            "problemMatcher": []
        }
    ]
}
  • RUN해서 /addserver/add 주소로 잘 되는지 확인한다.

    • 쉬프트 알트 R - tomcatStart : addserver 를 선택.

    • 단축키 설정은 이전편에서....

      https://user-images.githubusercontent.com/6326475/141604004-3f2c4ed6-cd90-4a5d-9234-06eeb6d9534d.png

https://user-images.githubusercontent.com/6326475/141604017-5bcfb582-55eb-4460-baf8-0ac543938b0b.png

  • 서버 중지는 쉬프트+알트+R 에서 tomcatStop : addserver 를 선택한다.
  • 기본틀은 완성되었다. 이제 기능을 구현하자...

'Develop > Java' 카테고리의 다른 글

gradle4 API server  (0) 2021.11.13
gradle3 API server  (0) 2021.11.13
gradle1 기초  (0) 2021.11.13
이클립스 단축키 이것만.  (0) 2019.11.10
Short URL(단축URL) API  (1) 2019.11.07

+ Recent posts