JavaRush /Java Blog /Random-KO /Java EE 개발을 위한 로컬 환경 설정
zor07
레벨 31
Санкт-Петербург

Java EE 개발을 위한 로컬 환경 설정

Random-KO 그룹에 게시되었습니다
이 기사에서는 Java EE 애플리케이션을 실행하기 위한 작업 환경을 설정합니다. 상기시켜 드리겠습니다. 이전 자료에서는 Java EE 의 기본 사항을 다루었습니다 . Java EE 개발을 위한 로컬 환경 설정 - 1환경이란 다양한 소프트웨어 구성요소 세트를 의미합니다.
  • 자바 EE SDK;
  • Java EE 애플리케이션 서버 GlassFish;
  • IntelliJ IDEA 설정.
이 자료의 주요 목표:
  1. Java EE 애플리케이션 작업을 위한 작업 환경을 준비하는 방법을 보여줍니다.
  2. GlassFish 서버의 IntelliJ IDEA에서 Java EE 애플리케이션을 배포하고 실행하는 방법을 보여줍니다.
이를 위해 우리가 할 일은 다음과 같습니다.
  1. Java EE 7 SDK를 다운로드하고 설치합니다.
  2. Java EE 애플리케이션 서버 GlassFish를 키워보겠습니다.
  3. 명령줄을 통해 서버를 시작하고 중지하는 방법을 알아봅시다.
  4. 이 서버에 애플리케이션을 배포하도록 IntelliJ IDEA를 구성해 보겠습니다.
  5. GlassFish 애플리케이션 서버와 함께 Java EE 7 SDK에 포함된 데모 애플리케이션을 배포하고 실행해 보겠습니다.
이 기사는 Java의 엔터프라이즈 개발에 익숙해지고 있는 초보 Java 개발자에게 유용합니다. 추가 연습을 위한 기초 준비를 고려하십시오. 기본적인 Windows 명령줄(PowerShell) 기술에 익숙하다면 내용을 이해할 수 있습니다. 이 문서에 사용된 소프트웨어 구성 요소 버전:
  • 글래스피시 4.0;
  • IntelliJ IDEA 2019.3.1(Ultimate);
  • 자바 EE SDK 7.

Java EE SDK 설치

중요한 조건. Java EE SDK를 설치하기 전에 Java SE SDK가 사전 설치되어 있는지 확인해야 합니다.
  1. 먼저 SDK를 다운로드해야 합니다. 이렇게 하려면 검색 엔진에 "Java EE SDK 7"을 입력하거나 Oracle 웹 사이트에서 SDK 다운로드 페이지 로 직접 이동할 수 있습니다.

  2. 제시된 SDK 목록에서 귀하의 플랫폼에 적합한 SDK를 선택해야 합니다. 이 기사에서는 "java_ee_sdk-7-jdk7-windows-x64-ml.exe" 배포판 설치에 대해 설명합니다.

  3. 설치 파일을 실행합니다. 시작하는 동안 다음 오류가 발생할 수 있습니다(발생하지 않으면 설치를 계속할 수 있습니다).

    Java EE 개발을 위한 로컬 환경 설정 - 2

    이는 설치 프로그램이 사전 설치된 Java Runtime Environment의 경로를 찾을 수 없음을 의미합니다. 명령줄을 사용하여 수동으로 JRE에 경로를 전달하면 오류를 수정할 수 있습니다. 이렇게 하려면 PowerShell을 통해 설치 파일을 실행하고 -j 매개변수를 통해 사전 설치된 JRE 경로를 전달해야 합니다.

    예를 들어 다음과 같습니다.

    Java EE 개발을 위한 로컬 환경 설정 - 3
  4. 추가 설치 절차는 대부분의 프로그램에서 매우 일반적입니다. 다음과 설치 버튼을 클릭하기만 하면 됩니다.

    프로그램은 Java EE SDK와 GlassFish 서버를 설치하며, 설치가 완료되면 바로 사용할 수 있습니다.

  5. GlassFish 서버가 작동하는지 확인하려면 설치가 완료된 후 http://localhost:4848/ 에서 서버 관리 패널을 열 수 있습니다.

    아래 스크린샷:

    Java EE 개발을 위한 로컬 환경 설정 - 4

명령줄을 통해 GlassFish 시작 및 중지

따라서 서버가 시작되어 실행 중이지만 서버 시작은 설치 프로그램에 의해 시작되었습니다. 아래에서는 서버를 직접 시작하고 중지하는 방법을 알아 보겠습니다. 먼저 그러한 개체를 도메인으로 공개하겠습니다. 도메인은 하나의 관리 서버에서 관리하는 하나 이상의 GlassFish 서버 인스턴스 집합입니다. GlassFish 서버를 설치하면 기본 도메인인 domain1이 생성됩니다. 다음 구성 요소가 연결되어 있습니다.
  • 서버 포트(기본값 8080)
  • 관리 서버 포트(기본값 4848)
  • 관리자 사용자 이름 및 비밀번호(기본값은 admin이며 기본적으로 비밀번호가 필요하지 않음)
Domain1에는 기본값이 할당되어 있습니다. Java EE 개발을 위한 로컬 환경 설정 - 5서버를 시작하고 중지하기 위해 GlassFish 배포판에는 기본적으로 다음 디렉토리에 있는 여러 스크립트가 포함되어 있습니다. C:\glassfish4\glassfish\bin 명령줄을 통해 GlassFish 서버를 시작하고 중지하려면 asadmin 스크립트를 사용할 수 있습니다. 그리고 그 명령은 다음과 같습니다:
asadmin start-domain domain_name
asadmin stop-domain domain_name
C:\glassfish4\glassfish\bin 하위 디렉터리에서 PowerShell을 실행하여 서버를 중지해 보겠습니다(설치 후 이미 실행 중이므로) . Java EE 개발을 위한 로컬 환경 설정 - 6서버가 중지되었습니다. 이제 실행해보자: Java EE 개발을 위한 로컬 환경 설정 - 7

최초의 Java EE 애플리케이션인 dukes-age를 분석합니다.

다음으로 데모 Java EE 애플리케이션인 dukes-age를 살펴보겠습니다. 이 애플리케이션은 첫 번째 컵 애플리케이션과 함께 Java EE SDK에 포함되어 있습니다. 이러한 애플리케이션에 대한 설명은 초보 Java EE 개발자를 위한 Java EE 입문 과정의 섹션 3 및 4에 있는 공식 Oracle 설명서 웹 사이트에 나와 있습니다 . 이 기사에서는 dukes-age 애플리케이션을 간략하게 살펴보고 IntelliJ IDEA 개발 환경의 GlassFish 서버에서 이 애플리케이션을 실행하는 프로세스를 더 자세히 살펴보겠습니다. 애플리케이션은 glassfish 서버 디렉토리 내에 있습니다. Java EE SDK를 설치할 때 glassfish 서버의 기본 경로를 변경하지 않은 경우 C:\glassfish4\docs\firstcup\example\dukes-age 폴더에서 이 애플리케이션을 찾을 수 있습니다 . 아마도 모든 Java 개발자는 초보자와 경험자 모두 Java 프로그래밍 언어의 마스코트인 Duke를 한 번 이상 본 적이 있을 것입니다. Duke: Java EE 개발을 위한 로컬 환경 설정 - 8Duke에게 생일이 있다는 사실을 아는 사람은 거의 없습니다. 그는 Java 기술의 첫 번째 데모 버전이 출시된 1995년 5월 23일에 태어났습니다. Dukes-age 앱은 이름에서 알 수 있듯이 Duke의 나이에 대한 정보를 제공합니다. IntelliJ IDEA에서 이 애플리케이션을 열어 보겠습니다. 파일 -> 새로 만들기 -> 기존 소스에서 프로젝트... 그런 다음 기본적으로 C:\glassfish4\docs\firstcup\example\dukes- 에 있는 dukes-age 애플리케이션이 있는 폴더로 이동합니다. age 에서 pom.xml 파일을 선택하고 확인을 클릭합니다. Java EE 개발을 위한 로컬 환경 설정 - 9다음 구조의 애플리케이션이 열립니다. Java EE 개발을 위한 로컬 환경 설정 - 10클래스 코드를 살펴보겠습니다 DukesAgeResource.
package firstcup.dukesage.resource;

import java.util.Calendar;
import java.util.GregorianCalendar;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;

/**
 * REST Web Service
 *
 */
@Path("dukesAge")
public class DukesAgeResource {

    /** Creates a new instance of DukesAgeResource */
    public DukesAgeResource() {
    }

    /**
     * Retrieves representation of an instance of DukesAgeResource
     * @return an instance of java.lang.String
     */
    @GET
    @Produces("text/plain")
    public String getText() {
        // Create a new Calendar for Duke's birthday
        Calendar dukesBirthday = new GregorianCalendar(1995, Calendar.MAY, 23);
        // Create a new Calendar for today
        Calendar now = GregorianCalendar.getInstance();

        // Subtract today's year from Duke's birth year, 1995
        int dukesAge = now.get(Calendar.YEAR) - dukesBirthday.get(Calendar.YEAR);
        dukesBirthday.add(Calendar.YEAR, dukesAge);

        // If today's date is before May 23, subtract a year from Duke's age
        if (now.before(dukesBirthday)) {
            dukesAge--;
        }
        // Return a String representation of Duke's age
        return "" + dukesAge;
    }
}
이것은 한 가지 방법을 사용하는 JAX-RS RESTful 웹 서비스입니다 getText(). 이 메서드의 코드를 살펴보면 Duke가 태어난 이후 경과한 연수를 반환한다는 사실이 분명해집니다. 즉, 이 메서드는 Duke의 나이를 반환합니다. 클래스는 REST 컨텍스트의 리소스입니다.
  1. 클래스 위의 주석은 @Path("dukesAge")이 클래스에서 호출을 처리할 URI 경로를 정의합니다.
  2. 메소드 위의 주석은 @GET이 메소드가 GET 요청을 처리함을 알려줍니다.
  3. 주석은 @Produces("text/plain")요청에 대한 응답의 미디어 유형을 지정합니다. getText()이 메서드가 미디어 유형(text/plain)으로 응답을 생성할 것이라고 추측하는 것은 어렵지 않습니다 .
web.xml 구성 파일도 살펴보겠습니다.
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    <servlet>
        <servlet-name>javax.ws.rs.core.Application</servlet-name>
    </servlet>
    <servlet-mapping>
        <servlet-name>javax.ws.rs.core.Application</servlet-name>
        <url-pattern>/webapi/*</url-pattern>
    </servlet-mapping>
</web-app>
이 파일의 태그 내부에는 값이 있는 servlet-mapping태그가 정의되어 있습니다 . 여기에는 서비스에서 추가로 처리할 호출인 특정 루트 지점이 정의됩니다. 주석과 결합하면 Duke의 나이에 대한 정보를 얻으려면 /webapi/dukesAge 주소에 문의해야 한다는 것이 밝혀졌습니다. url-pattern/webapi/*@Path("dukesAge")

GlassFish 서버에서 Java EE 애플리케이션을 실행하도록 IntelliJ IDEA 설정

이제 dukes-age 애플리케이션에 대한 매우 일반적인 아이디어가 생겼으므로(자세한 내용은 Oracle 사이트 참조) IDE에서 이 애플리케이션을 실행할 수 있도록 IntelliJ IDEA를 구성해 보겠습니다. IntelliJ IDEA 설정
  1. 이렇게 하려면 메뉴 실행 -> 구성 편집으로 이동하세요.
  2. 실행/디버그 구성 패널이 열립니다. Java EE 개발을 위한 로컬 환경 설정 - 11
  3. 새로운 구성을 추가해야 합니다. 이렇게 하려면 더하기 기호를 클릭하거나 Alt+Insert 단축키를 사용하세요. 열리는 목록에서 GlassFish Server -> 로컬을 선택합니다. Java EE 개발을 위한 로컬 환경 설정 - 12
  4. 열리는 창에서 구성 설정을 시작해 보겠습니다. Java EE 개발을 위한 로컬 환경 설정 - 13
  5. 다음 단계는 서버에 배포해야 할 아티팩트를 나타내는 것입니다. 더하기 -> 아티팩트...를 클릭하여 배포 탭을 통해 이 작업을 수행할 수 있습니다. Java EE 개발을 위한 로컬 환경 설정 - 14
  6. dukes-age:war을 선택하고 확인을 클릭합니다. Java EE 개발을 위한 로컬 환경 설정 - 15
  7. 다음으로 적용을 클릭한 다음 확인을 클릭하여 구성을 저장합니다.
구성이 생성되었습니다!

애플리케이션 실행

이제 애플리케이션을 실행해 보겠습니다.
  1. 이를 수행하려면 단축키 Alt+Shift+F10을 사용하거나 메뉴 실행 -> 실행...을 통해 수행할 수 있습니다.

    그리고 우리가 만든 Dukes-age 구성을 선택합니다.

    Java EE 개발을 위한 로컬 환경 설정 - 16

  2. 그런 다음 서비스 패널에 시작 로그가 표시됩니다.

    Java EE 개발을 위한 로컬 환경 설정 - 17
  3. 그런 다음 지침에 따라 모든 작업이 완료되면 브라우저가 열리고 아무것도 작동하지 않는다는 것이 분명해집니다.

    Java EE 개발을 위한 로컬 환경 설정 - 18
IT 세계가 그렇습니다. 모든 것이 올바르게 수행되더라도 뭔가 작동하지 않을 수 있습니다. 하지만 걱정하지 마세요. 올바르게 수행하는 방법을 즉시 설명할 수 있지만 일부 뉘앙스는 덜 명확해질 수 있습니다. 예를 들어, 애플리케이션을 시작할 때 IDEA가 우리에게 지시하는 URL은 어떻게 생성됩니까? 그것에 주목하자. http://localhost:8080/dukes-age-7.0.1/ 로 리디렉션되었습니다 . 이것이 어디서 왔는지(/dukes-age-7.0.1/) 이해하기 위해 GlassFish 서버의 관리 패널로 이동해 보겠습니다. 왼쪽 메뉴에서 애플리케이션을 클릭합니다. 다음에는 Dukes-age를 포함하여 배포된 애플리케이션이 표시됩니다. dukes-age 애플리케이션을 선택하면 Context-Root 항목을 포함한 일부 특성을 볼 수 있습니다. Java EE 개발을 위한 로컬 환경 설정 - 19dukes-age-7.0.1은 애플리케이션의 이름과 버전입니다. 루트 포인트. dukes-age가 처리하는 모든 요청은 /dukes-age-7.0.1/ 접두사로 시작해야 합니다. 따라서 루트 지점은 /dukes-age-7.0.1입니다. 또한 이전에 애플리케이션이 /webapi/dukesAge에 대한 요청을 처리한다고 논의했습니다. 이 두 가지를 결합하고 구성을 업데이트해 보겠습니다.
  1. 이를 수행하려면 IntelliJ IDEA로 돌아가서 메뉴: Run -> Edit Configurations...로 이동합니다.

  2. 이전에 저장한 구성을 선택하고 아래 스크린샷에 따라 URL을 업데이트해 보겠습니다.

    Java EE 개발을 위한 로컬 환경 설정 - 20
  3. Ctrl+Shift+F10 단축키를 사용하거나 서비스 패널의 특수 버튼을 사용하여 구성을 저장하고 애플리케이션을 다시 시작해 보겠습니다.

    Java EE 개발을 위한 로컬 환경 설정 - 21
  4. 다시 시작한 후 모든 것이 올바르게 완료되면 Duke의 나이가 표시됩니다.

    Настройка локального окружения для Java EE разработки - 22
엄청난. 드디어 Duke가 24세라는 사실을 알게 되었습니다. 2020년 4월부터 다음 몇 달 동안 위에 설명된 모든 단계를 반복하지 않으면 Duke가 약간 노화될 것입니다.

결론

이 기사에서는 GlassFish 4.0 서버, IntelliJ IDEA 2019.3.1(Ultimate) 개발 환경 및 Java EE SDK 버전 7의 예를 사용하여 Java EE 애플리케이션과 작동하도록 로컬 환경을 구성하는 방법을 살펴보았습니다. 우리는 다음과 같은 방법을 살펴보았습니다.
  • Java EE SDK와 GlassFish 서버를 다운로드하여 설치합니다.
  • PowerShell을 통해 GlassFish 서버를 중지하고 시작합니다.
  • IDE에서 GlassFish 서버로 Java EE 애플리케이션을 배포하고 즉시 시작할 수 있도록 IntelliJ IDEA를 구성합니다.

보너스 작업

  1. 설명된 모든 단계를 직접 반복하세요.
  2. Oracle의 초보 Java EE 개발자를 위한 Java EE 입문 과정을 수강하세요 .
  3. 별표가 있는 항목입니다. 두 번째 첫 번째 컵 데모 애플리케이션을 직접 배포해 보세요. 이 응용 프로그램은 더욱 대화형이며 Dukes-age 응용 프로그램과도 상호 작용합니다. 이 단계를 완료하려면 다음 질문을 독립적으로 이해해야 합니다.
    1. glassFish 서버 내부에서 데이터베이스를 활성화하는 방법
    2. 두 애플리케이션을 서로 통합하는 방법(first-cup 내부에는 이 기사에서 논의한 dukes-age 엔드포인트에 대한 경로가 표시됨)
    3. 첫 번째 컵 배포를 위해 Intellij IDEA에서 새 구성을 만드는 방법(이 문서에 표시된 내용과 유사)
    4. 다른 질문이 많을 수도 있음)
PS 진입장벽이 높은데 그게 동기부여가 되지 않나요?
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION