- 자바 EE SDK;
- Java EE 애플리케이션 서버 GlassFish;
- IntelliJ IDEA 설정.
- Java EE 애플리케이션 작업을 위한 작업 환경을 준비하는 방법을 보여줍니다.
- GlassFish 서버의 IntelliJ IDEA에서 Java EE 애플리케이션을 배포하고 실행하는 방법을 보여줍니다.
- Java EE 7 SDK를 다운로드하고 설치합니다.
- Java EE 애플리케이션 서버 GlassFish를 키워보겠습니다.
- 명령줄을 통해 서버를 시작하고 중지하는 방법을 알아봅시다.
- 이 서버에 애플리케이션을 배포하도록 IntelliJ IDEA를 구성해 보겠습니다.
- GlassFish 애플리케이션 서버와 함께 Java EE 7 SDK에 포함된 데모 애플리케이션을 배포하고 실행해 보겠습니다.
- 글래스피시 4.0;
- IntelliJ IDEA 2019.3.1(Ultimate);
- 자바 EE SDK 7.
Java EE SDK 설치
중요한 조건. Java EE SDK를 설치하기 전에 Java SE SDK가 사전 설치되어 있는지 확인해야 합니다.-
먼저 SDK를 다운로드해야 합니다. 이렇게 하려면 검색 엔진에 "Java EE SDK 7"을 입력하거나 Oracle 웹 사이트에서 SDK 다운로드 페이지 로 직접 이동할 수 있습니다.
-
제시된 SDK 목록에서 귀하의 플랫폼에 적합한 SDK를 선택해야 합니다. 이 기사에서는 "java_ee_sdk-7-jdk7-windows-x64-ml.exe" 배포판 설치에 대해 설명합니다.
-
설치 파일을 실행합니다. 시작하는 동안 다음 오류가 발생할 수 있습니다(발생하지 않으면 설치를 계속할 수 있습니다).
이는 설치 프로그램이 사전 설치된 Java Runtime Environment의 경로를 찾을 수 없음을 의미합니다. 명령줄을 사용하여 수동으로 JRE에 경로를 전달하면 오류를 수정할 수 있습니다. 이렇게 하려면 PowerShell을 통해 설치 파일을 실행하고 -j 매개변수를 통해 사전 설치된 JRE 경로를 전달해야 합니다.
예를 들어 다음과 같습니다.
-
추가 설치 절차는 대부분의 프로그램에서 매우 일반적입니다. 다음과 설치 버튼을 클릭하기만 하면 됩니다.
프로그램은 Java EE SDK와 GlassFish 서버를 설치하며, 설치가 완료되면 바로 사용할 수 있습니다. -
GlassFish 서버가 작동하는지 확인하려면 설치가 완료된 후 http://localhost:4848/ 에서 서버 관리 패널을 열 수 있습니다.
아래 스크린샷:
명령줄을 통해 GlassFish 시작 및 중지
따라서 서버가 시작되어 실행 중이지만 서버 시작은 설치 프로그램에 의해 시작되었습니다. 아래에서는 서버를 직접 시작하고 중지하는 방법을 알아 보겠습니다. 먼저 그러한 개체를 도메인으로 공개하겠습니다. 도메인은 하나의 관리 서버에서 관리하는 하나 이상의 GlassFish 서버 인스턴스 집합입니다. GlassFish 서버를 설치하면 기본 도메인인 domain1이 생성됩니다. 다음 구성 요소가 연결되어 있습니다.- 서버 포트(기본값 8080)
- 관리 서버 포트(기본값 4848)
- 관리자 사용자 이름 및 비밀번호(기본값은 admin이며 기본적으로 비밀번호가 필요하지 않음)
asadmin start-domain domain_name
asadmin stop-domain domain_name
C:\glassfish4\glassfish\bin 하위 디렉터리에서 PowerShell을 실행하여 서버를 중지해 보겠습니다(설치 후 이미 실행 중이므로) . 서버가 중지되었습니다. 이제 실행해보자:
최초의 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: Duke에게 생일이 있다는 사실을 아는 사람은 거의 없습니다. 그는 Java 기술의 첫 번째 데모 버전이 출시된 1995년 5월 23일에 태어났습니다. Dukes-age 앱은 이름에서 알 수 있듯이 Duke의 나이에 대한 정보를 제공합니다. IntelliJ IDEA에서 이 애플리케이션을 열어 보겠습니다. 파일 -> 새로 만들기 -> 기존 소스에서 프로젝트... 그런 다음 기본적으로 C:\glassfish4\docs\firstcup\example\dukes- 에 있는 dukes-age 애플리케이션이 있는 폴더로 이동합니다. age 에서 pom.xml 파일을 선택하고 확인을 클릭합니다. 다음 구조의 애플리케이션이 열립니다. 클래스 코드를 살펴보겠습니다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 컨텍스트의 리소스입니다.
- 클래스 위의 주석은
@Path("dukesAge")
이 클래스에서 호출을 처리할 URI 경로를 정의합니다. - 메소드 위의 주석은
@GET
이 메소드가 GET 요청을 처리함을 알려줍니다. - 주석은
@Produces("text/plain")
요청에 대한 응답의 미디어 유형을 지정합니다.getText()
이 메서드가 미디어 유형(text/plain)으로 응답을 생성할 것이라고 추측하는 것은 어렵지 않습니다 .
<?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 설정- 이렇게 하려면 메뉴 실행 -> 구성 편집으로 이동하세요.
- 실행/디버그 구성 패널이 열립니다.
- 새로운 구성을 추가해야 합니다. 이렇게 하려면 더하기 기호를 클릭하거나 Alt+Insert 단축키를 사용하세요. 열리는 목록에서 GlassFish Server -> 로컬을 선택합니다.
- 열리는 창에서 구성 설정을 시작해 보겠습니다.
- 다음 단계는 서버에 배포해야 할 아티팩트를 나타내는 것입니다. 더하기 -> 아티팩트...를 클릭하여 배포 탭을 통해 이 작업을 수행할 수 있습니다.
- dukes-age:war을 선택하고 확인을 클릭합니다.
- 다음으로 적용을 클릭한 다음 확인을 클릭하여 구성을 저장합니다.
애플리케이션 실행
이제 애플리케이션을 실행해 보겠습니다.-
이를 수행하려면 단축키 Alt+Shift+F10을 사용하거나 메뉴 실행 -> 실행...을 통해 수행할 수 있습니다.
그리고 우리가 만든 Dukes-age 구성을 선택합니다.
-
그런 다음 서비스 패널에 시작 로그가 표시됩니다.
-
그런 다음 지침에 따라 모든 작업이 완료되면 브라우저가 열리고 아무것도 작동하지 않는다는 것이 분명해집니다.
-
이를 수행하려면 IntelliJ IDEA로 돌아가서 메뉴: Run -> Edit Configurations...로 이동합니다.
-
이전에 저장한 구성을 선택하고 아래 스크린샷에 따라 URL을 업데이트해 보겠습니다.
-
Ctrl+Shift+F10 단축키를 사용하거나 서비스 패널의 특수 버튼을 사용하여 구성을 저장하고 애플리케이션을 다시 시작해 보겠습니다.
-
다시 시작한 후 모든 것이 올바르게 완료되면 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를 구성합니다.
보너스 작업
- 설명된 모든 단계를 직접 반복하세요.
- Oracle의 초보 Java EE 개발자를 위한 Java EE 입문 과정을 수강하세요 .
- 별표가 있는 항목입니다. 두 번째 첫 번째 컵 데모 애플리케이션을 직접 배포해 보세요. 이 응용 프로그램은 더욱 대화형이며 Dukes-age 응용 프로그램과도 상호 작용합니다. 이 단계를 완료하려면 다음 질문을 독립적으로 이해해야 합니다.
- glassFish 서버 내부에서 데이터베이스를 활성화하는 방법
- 두 애플리케이션을 서로 통합하는 방법(first-cup 내부에는 이 기사에서 논의한 dukes-age 엔드포인트에 대한 경로가 표시됨)
- 첫 번째 컵 배포를 위해 Intellij IDEA에서 새 구성을 만드는 방법(이 문서에 표시된 내용과 유사)
- 다른 질문이 많을 수도 있음)
GO TO FULL VERSION