Instrukcja wdrażania aplikacji Java Servlets

Opublikowano: 2019-02-05 09:07:26


article
Przygotowałem prosty manual obrazkowy, objaśniający krok po kroku sposób wdrożenia aplikacji Java Servlets na platformie Heroku. Pokazałem również, w jaki sposób przygotować bazę danych PostgreSQL dla aplikacji i jak się do niej łączyć.
No to zaczynamy! Usiądź wygodnie w fotelu, zapnij pasy, i jak już będziesz gotowy, naciśnij przycisk Start. Tylko pamiętaj, że robisz to na własną odpowiedzialność...
Tytuł
1 z 18
Szczegóły
1. Konto na platformie Heroku Zakładamy konto na platformie Heroku i logujemy się. Ukazuje nam się lista stworzonych aplikacji.
2. Nowa aplikacja Tworzymy nową aplikację. Klikamy na przycisk New. Wybieramy opcję Create new app.
3. Nazwa aplikacji Nadajemy nazwę dla naszej aplikacji. Wybieramy też region - najlepiej Europa. Klikamy na przycisk Create app.
4. Metoda wdrożenia Wybieramy metodę wdrożenia aplikacji na serwerze - Deployment method. Pozostawiamy bez zmian zaznaczoną domyślnie pierwszą opcję Heroku Git.
5. Command Line Interface Pobieramy, a następnie instalujemy narzędzie Heroku CLI. Logujemy się na konto Heroku poleceniem:

heroku login
Podajemy email i hasło. Inicjujemy repozytorium:

git init
heroku git:remote -a nazwa-naszej-aplikacji
6. Zmienne systemowe W sekcji Config Vars wprowadzamy zmienne użytkownika, wykorzystywane do połączenia z bazą danych. Należy dodać następujące zmienne: DB_HOST, DB_PORT, DB_NAME, DB_USER, DB_PASS. Ich wartości muszą być zgodne z parametrami połączenia z bazą danych na portalu ElephantSQL.
7. Wprowadzamy dane Klikamy na przycisk Reveal Config Vars. W wyniku tego odsłania nam się formularz wprowadzania zmiennych systemowych typu klucz-wartość.
8. Zmienne systemowe W efekcie powinniśmy mieć wpisane następujące zmienne: DB_HOST, DB_PORT, DB_NAME, DB_USER, DB_PASS. Będą nam służyć jako zmienne systemowe, aby nie zapisywać tych danych na stałe w kodzie.
9. Platforma ElephantSQL Zakładamy konto na ElephantSQL. Logujemy się. Aby utworzyć bazę danych PostgreSQL dla naszej aplikacji, klikamy na przycisk Create New Instance.
10. Nazwa instancji Nadajemy nazwę tworzonej instancji. Wybieramy też Data center - najlepiej w Europie. W Tags możemy dodać własny tag. Na koniec klikamy na przycisk Create New Instance.
11. Lista instancji Po utworzeniu instancji dla naszej bazy danych pojawia się ona na liście posiadanych instancji. Możemy teraz ustalić dla niej szczegóły - klikamy w przycisk Edit.
12. Szczegóły Ukazuje nam się widok szczegółów utworzonej właśnie bazy danych. Mamy tu Server (co odpowiada zmiennej systemowej DB_HOST), User & Default database (co odpowiada naszym zmiennym DB_USER oraz DB_NAME), Password (czyli u nas DB_PASS) oraz cały URL (czyli tzw. Connection String) połączenia z bazą danych.
13. SQL Browser - tworzymy tabelę users Przechodząc na zakładkę SQL Browser, uzyskujemy dostęp do formularza z okienkiem, w którym możemy wpisywać zapytania i polecenia SQL do naszej bazy. Skorzystamy z niego, aby utworzyć niezbędne tabele. Aplikacja wykorzystuje cztery tabele: users, pages, messages oraz visitors. W pierwszej tabeli będą przechowywane informacje o użytkownikach serwisu. Wpisujemy:

CREATE TABLE users (
	id BIGSERIAL PRIMARY KEY,
	login varchar(100) UNIQUE, 
	email varchar(100) UNIQUE, 
	password varchar(100) NOT NULL, 
	registered TIMESTAMP WITH TIME ZONE, 
	logged TIMESTAMP WITH TIME ZONE
);
INSERT INTO users (login, email, password, registered, logged) 
	VALUES ('admin', 'admin@gmail.com', '21232f297a57a5a743894a0e4a801fc3', NOW(), NOW());
Dodaliśmy od razu użytkownika, na którego będziemy mogli zalogować się do panelu administratora, podając login: admin, hasło: admin.
14. SQL Browser - tworzymy tabelę pages W tabeli tej przechowywane będą wszystkie strony serwisu, a więc strona główna, kontaktowa, podstrony instrukcji oraz utworzone posty. Wpisujemy:

CREATE TABLE pages (
	id BIGSERIAL PRIMARY KEY,
	index varchar(100) UNIQUE, 
	title varchar(1000), 
	image text, 
	intro text, 
	content text NOT NULL, 
	modified TIMESTAMP WITH TIME ZONE
);
INSERT INTO pages (index, title, image, intro, content, modified) 
	VALUES ('index', 'Start', 'https://images.unsplash.com/photo-1498496294664-d9372eb521f3?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=f81344f21400a387f61effd4b5a4dcd5&auto=format&fit=crop&w=500&q=60', 'Welcome!', 'This is starting page of Your Blog.', NOW());
INSERT INTO pages (index, title, image, intro, content, modified) 
	VALUES ('contact', 'Contact', 'https://images.unsplash.com/1/iphone-4-closeup.jpg?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=3793dc829da718fc56ef19a8c99d938b&auto=format&fit=crop&w=500&q=60', 'Contact me!', 'This is contact page of Your Blog.', NOW());
INSERT INTO pages (index, title, image, intro, content, modified) 
	VALUES ('article-1', 'My first article', 'https://images.unsplash.com/photo-1461773518188-b3e86f98242f?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=b53051efbc0883b392aeaf9ad1a96ad7&auto=format&fit=crop&w=500&q=60', 'Intro to my first article...', 'This is content of my first article...', NOW());
INSERT INTO pages (index, title, image, intro, content, modified) 
	VALUES ('article-2', 'My second article', 'https://images.unsplash.com/photo-1518081461904-9d8f136351c2?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=8a815e999d0f593c8c8bbcb6473b0d39&auto=format&fit=crop&w=500&q=60', 'Intro to my second article...', 'This is content of my second article...', NOW());
15. SQL Browser - tworzymy tabelę messages W tej tabeli przechowywane są wiadomości przysłane przez użytkowników za pomocą formularza kontaktowego. Wpisujemy:

CREATE TABLE messages (
	id BIGSERIAL PRIMARY KEY,
	nick varchar(100) NOT NULL, 
	email varchar(100) NOT NULL, 
	message text NOT NULL, 
	ip varchar(15), 
	request boolean, 
	sent TIMESTAMP WITH TIME ZONE
);
16. SQL Browser - tworzymy tabelę visitors W tej tabeli przechowywane są wszystkie zarejestrowane odwiedziny serwisu. Wpisujemy:

CREATE TABLE visitors (
	id BIGSERIAL PRIMARY KEY,
	visitor_ip varchar(15), 
	http_referer text, 
	request_uri text, 
	visited TIMESTAMP WITH TIME ZONE
);
17. Command Line Interface Wprowadzamy zmiany w projekcie (coś dodajemy, coś poprawiamy itp.). Kommitujemy zmiany na serwer:

git add .
git commit -m "Opis zmian w commicie"
git push heroku master
18. Kompilacja projektu Po wysłaniu commita poleceniem git push heroku master następuje kompilacja kodu naszego projektu na serwerze. Po chwili aplikacja jest gotowa i dostępna on-line dla wszystkich!