- SDK Java EE;
- Serwer aplikacji Java EE GlassFish;
- Konfigurowanie IntelliJ IDEA.
- Pokaż jak przygotować środowisko pracy do pracy z aplikacjami Java EE.
- Pokaż, jak wdrażać i uruchamiać aplikacje Java EE z IntelliJ IDEA na serwerze GlassFish.
- Pobierz i zainstaluj pakiet SDK Java EE 7.
- Podnieśmy serwer aplikacji Java EE GlassFish.
- Nauczmy się, jak uruchamiać i zatrzymywać serwer za pomocą wiersza poleceń.
- Skonfigurujmy IntelliJ IDEA do wdrażania aplikacji na tym serwerze.
- Wdróżmy i uruchommy aplikację demonstracyjną, która wraz z serwerem aplikacji GlassFish znajduje się w pakiecie Java EE 7 SDK.
- Szklana Ryba 4.0;
- IntelliJ IDEA 2019.3.1 (ostateczny);
- Pakiet SDK Java EE 7.
Instalowanie zestawu SDK Java EE
Ważny warunek. Przed zainstalowaniem pakietu Java EE SDK należy upewnić się, że pakiet Java SE SDK jest preinstalowany.-
Najpierw musimy pobrać SDK. Aby to zrobić, możesz wpisać w wyszukiwarkę: „Java EE SDK 7” lub bezpośrednio przejść do strony pobierania pakietu SDK ze strony internetowej Oracle.
-
Z listy dostarczonych zestawów SDK musisz wybrać ten, który jest odpowiedni dla Twojej platformy. W artykule opisano instalację dystrybucji: „java_ee_sdk-7-jdk7-windows-x64-ml.exe”
-
Uruchom plik instalacyjny. Podczas uruchamiania może wystąpić następujący błąd (jeśli nie wystąpi, możesz po prostu kontynuować instalację):
Oznacza to, że instalator nie mógł znaleźć ścieżki do preinstalowanego środowiska Java Runtime Environment. Błąd można naprawić, przekazując ręcznie ścieżkę do środowiska JRE za pomocą wiersza poleceń. Aby to zrobić, należy uruchomić plik instalacyjny poprzez PowerShell i przekazać ścieżkę do preinstalowanego środowiska JRE za pomocą parametru -j.
Na przykład tak:
-
Dalsza procedura instalacji jest dość typowa dla większości programów. Wszystko, co musisz zrobić, to kliknąć przyciski Dalej i Zainstaluj.
Program zainstaluje pakiet Java EE SDK oraz serwer GlassFish, który po zakończeniu instalacji będzie gotowy do użycia. -
Aby mieć pewność, że serwer GlassFish działa, po zakończeniu instalacji możesz otworzyć panel administracyjny serwera, który będzie dostępny pod adresem: http://localhost:4848/
Zrzut ekranu poniżej:
Uruchamianie i zatrzymywanie GlassFish za pomocą wiersza poleceń
Zatem serwer działa i działa, ale jego uruchomienie zostało zainicjowane przez program instalacyjny. Poniżej postaramy się dowiedzieć, jak samodzielnie uruchomić i zatrzymać serwer. Najpierw ujawnijmy taki byt jak domenę. Domena to zbiór jednej lub więcej instancji serwera GlassFish zarządzanych przez jeden serwer administracyjny. Podczas instalacji serwera GlassFish tworzona jest domyślna domena - domena1. Związane są z nim następujące komponenty:- Port serwera (domyślnie 8080);
- Port serwera administracyjnego (domyślnie 4848);
- Nazwa użytkownika i hasło administratora (domyślnie jest to admin i domyślnie hasło nie jest wymagane).
asadmin start-domain domain_name
asadmin stop-domain domain_name
Spróbujmy zatrzymać serwer (ponieważ jest już uruchomiony po instalacji), uruchamiając PowerShell z podkatalogu C:\glassfish4\glassfish\bin : Serwer jest zatrzymany. Teraz uruchommy to:
Analizujemy pierwszą aplikację Java EE, Dukes-Age
Następnie przyjrzymy się aplikacji demonstracyjnej Java EE: dukes-age. Ta aplikacja jest zawarta w pakiecie Java EE SDK wraz z aplikacją pierwszej filiżanki. Opisy tych aplikacji znajdują się na oficjalnej stronie internetowej z dokumentacją Oracle, w sekcjach 3 i 4 kursu wprowadzającego Java EE dla początkujących programistów Java EE . W tym artykule pokrótce przyjrzymy się aplikacji dukes-age i przeanalizujemy bardziej szczegółowo proces uruchomienia tej aplikacji na serwerze GlassFish ze środowiska deweloperskiego IntelliJ IDEA. Aplikacja znajduje się w katalogu serwera glassfish. Jeżeli podczas instalacji pakietu Java EE SDK nie zmieniłeś domyślnej ścieżki serwera glassfish, aplikację znajdziesz w folderze: C:\glassfish4\docs\firstcup\example\dukes-age . Prawdopodobnie każdy programista Java, początkujący i doświadczony, choć raz widział maskotkę języka programowania Java - Duke: Niewiele osób wie, że Duke ma urodziny. Urodził się 23 maja 1995 roku, kiedy ukazała się pierwsza wersja demonstracyjna technologii Java. Aplikacja Dukes-Age, jak sama nazwa wskazuje, dostarcza informacji o wieku Duke'a. Otwórzmy tę aplikację w IntelliJ IDEA: Plik -> Nowy -> Projekt z istniejących źródeł... Następnie przejdź do folderu z aplikacją dukes-age, domyślnie zlokalizowanego w C:\glassfish4\docs\firstcup\example\dukes- age , wybierz plik pom.xml i kliknij OK: Otworzy się aplikacja o następującej strukturze: Przyjrzyjmy się kodowi klasyDukesAgeResource
:
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;
}
}
Jest to usługa internetowa JAX-RS RESTful z jedną metodą - getText()
. Jeśli przeanalizujesz kod tej metody, stanie się jasne, że metoda zwraca liczbę lat, które minęły od narodzin Duke'a. Oznacza to, że metoda zwraca wiek Duke'a. Klasa jest zasobem w kontekście REST.
- Adnotacja nad klasą
@Path("dukesAge")
definiuje ścieżkę URI, do której będą przetwarzane wywołania przez tę klasę. - Adnotacja nad metodą
@GET
informuje nas, że metoda ta przetwarza żądania GET. - Adnotacja
@Produces("text/plain")
określa typ nośnika odpowiedzi na żądanie. Nietrudno się domyślić, że metodagetText()
będzie generować odpowiedzi z typem nośnika: tekst/zwykły.
<?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>
W tym pliku wewnątrz znacznika zdefiniowany jest servlet-mapping
znacznik url-pattern
o wartości /webapi/*
. Tutaj zdefiniowany jest pewien punkt główny, do którego wywołania będą dalej przetwarzane przez usługę. W połączeniu z adnotacją @Path("dukesAge")
okazuje się, że aby uzyskać informację o wieku Duke'a należy skontaktować się z adresem /webapi/dukesAge.
Konfigurowanie IntelliJ IDEA do uruchamiania aplikacji Java EE na serwerze GlassFish
Teraz, gdy mamy już bardzo ogólne pojęcie o aplikacji dukes-age (przeczytaj więcej na ten temat na stronie Oracle ), skonfigurujmy IntelliJ IDEA, abyśmy mogli uruchomić tę aplikację z naszego IDE. Konfigurowanie IntelliJ IDEA- Aby to zrobić, przejdź do menu Uruchom -> Edytuj konfiguracje.
- Otworzy się panel Konfiguracje uruchamiania/debugowania:
- Musimy dodać nową konfigurację. Aby to zrobić, kliknij znak plus lub użyj skrótu klawiszowego Alt+Insert. Z listy, która się otworzy, wybierz Serwer GlassFish -> Lokalny:
- W oknie, które się otworzy, zacznijmy konfigurować konfigurację:
- Następnym krokiem jest wskazanie artefaktów, które będą musiały zostać wdrożone na serwerze. Można to zrobić w zakładce Wdrożenie, klikając plus -> Artefakt...
- Wybierz Dukes-age:war i kliknij OK:
- Następnie zapisz naszą konfigurację klikając Zastosuj i następnie OK.
Uruchomienie aplikacji
Spróbujmy teraz uruchomić aplikację.-
Aby to zrobić, możesz użyć skrótu klawiszowego Alt+Shift+F10 lub poprzez menu Uruchom -> Uruchom...
I wybierz utworzoną przez nas konfigurację Dukes-Age:
-
Następnie widzimy dzienniki uruchamiania w panelu Usługi:
-
Następnie, jeśli wszystko zostanie wykonane zgodnie z instrukcjami, przeglądarka otworzy się i stanie się jasne, że nic nie działa:
-
W tym celu wróćmy do IntelliJ IDEA, następnie do menu: Uruchom -> Edytuj konfiguracje...
-
Wybierzmy wcześniej zapisaną konfigurację i zaktualizujmy adres URL zgodnie ze zrzutem ekranu poniżej:
-
Zapiszmy konfigurację i zrestartujmy naszą aplikację za pomocą skrótu Ctrl+Shift+F10 lub specjalnego przycisku na panelu Usługi:
-
Po ponownym uruchomieniu, jeśli wszystko zostało wykonane poprawnie, zobaczymy wiek Duke'a:
Wniosek
W tym artykule przyjrzeliśmy się, jak skonfigurować środowisko lokalne do pracy z aplikacjami Java EE na przykładzie serwera GlassFish 4.0, środowiska programistycznego IntelliJ IDEA 2019.3.1 (Ultimate), a także pakietu Java EE SDK w wersji 7. Przyjrzeliśmy się, jak możesz:- pobierz i zainstaluj Java EE SDK, a także serwer GlassFish;
- zatrzymaj i uruchom serwer GlassFish poprzez PowerShell;
- skonfiguruj IntelliJ IDEA, aby móc wdrażać aplikacje Java EE z IDE na serwer GlassFish i natychmiast je uruchamiać.
Zadanie bonusowe
- Powtórz wszystkie opisane kroki samodzielnie.
- Weź udział w kursie wprowadzającym dotyczącym Java EE dla początkujących programistów Java EE firmy Oracle .
- Pozycja z gwiazdką. Spróbuj samodzielnie wdrożyć drugą aplikację demonstracyjną First Cup. Ta aplikacja jest bardziej interaktywna i współdziała również z aplikacją Dukes Age. Aby ukończyć ten krok, musisz samodzielnie zrozumieć następujące pytania:
- Jak włączyć bazę danych na serwerze glassFish;
- Jak zintegrować ze sobą dwie aplikacje (wewnątrz pierwszej filiżanki wskaż ścieżkę do punktu końcowego Dukes Age, o czym mówiliśmy w tym artykule);
- Jak utworzyć nową konfigurację w Intellij IDEA do wdrożenia pierwszego kubka (podobnie jak pokazano w tym artykule);
- Prawdopodobnie wiele innych pytań)
GO TO FULL VERSION