wiki:ReDesign/deploy/localhostServer

Zprovoznění systémů RS a WMA na localhostu

Aplikace byla zprovozněna na systému Windows 10 a na systému macOS Mojave. Primárně pracuji na systému macOS Mojave, ale z důvodu rozšíření tohoto operačního systému je tento návod popsán pro systém Windows 10.

Localhost server doporučuji použít pro prvotní testování při vývoji nebo údržbě systému. Nevýhoda systému zprovozněného na localhost serveru je, že systém není schopen provádět pokročilejší funkce (například převod videí).
Naopak výhodou localhost serveru je rychlost nasazení při změně kódu a možnost sledování logu v IDE prostředí.

Pro základní chod systému je nutné provést několik následujících kroků:

1) mail server

Název serveru - mailslurper

Odkaz na download - https://github.com/mailslurper/mailslurper/releases

Odkaz na dokumentaci mail serveru - http://mailslurper.com

Stáhneme zip soubor pro příslušný OS (mailslurper-1.14.1-windows.zip), extrahujeme a upravíme konfiguraci následovně:

{
	"wwwAddress": "localhost",
	"wwwPort": 8090,
	"serviceAddress": "localhost",
	"servicePort": 8095,
	"smtpAddress": "localhost",
	"smtpPort": 25,
	"dbEngine": "SQLite",
	"dbHost": "",
	"dbPort": 0,
	"dbDatabase": "./mailslurper.db",
	"dbUserName": "",
	"dbPassword": "",
	"maxWorkers": 1000,
	"autoStartBrowser": false,
	"keyFile": "",
	"certFile": "",
	"adminKeyFile": "",
	"adminCertFile": "",
	"authenticationScheme": "",
	"authSecret": "",
	"authSalt": "",
	"authTimeoutInMinutes": 120,
	"credentials": {}
}

Po úpravě konfigurace spustíme mailserver exe souborem mailslurper.exe.

Všechny e-maily, které systém zašle jsou dostupné na adrese http://127.0.0.1:8090.

2) databázový server

Název - PostgreSQL Database ver. 9.3

Odkaz na download - https://www.postgresql.org/download/

Odkaz na dokumentaci databázového serveru - https://www.postgresql.org/docs/

Instalace

Instalaci provedeme spuštěním staženého instalátoru a projdeme kroky instalace. Při instalaci databázového serveru zadáváme heslo pro databázi postgres. Po instalaci serveru jsme dotázáni zda chceme instalovat doplňky. Doporučuji doinstalovat doplněk pgAdmin.

Import databáze

Po instalaci přes comamnd line provedeme import dumpu databáze lemma. Dump aktuální databáze získáme od správce systému https://lemma.ics.muni.cz/trac/lemma/wiki/ReservationSystemInfo#Administrátorisystému

Otevřeme sql comandline a provedeme násedující příkaz: \i c:/cesta_k_souboru/lemma.sql.
Výpis z comand line bude vypadat následovně:

Server [localhost]:
Database [postgres]:
Port [5432]:
Username [postgres]:
Password for user postgres:
psql (9.2.4)
WARNING: Console code page (437) differs from Windows code page (1252)
         8-bit characters might not work correctly. See psql reference
         page "Notes for Windows users" for details.
Type "help" for help.

postgres=# \i c:/cesta_k_souboru/lemma.sql

Po importu přes pgAdmin přidáme uživalete, pomocí krterého se budeme připojovat k databázi.

3) Netbeans IDE

Verze - NetBeans? IDE 8.2
Odkaz na download - https://netbeans.org/downloads/
Odkaz na dokumentaci - https://netbeans.org/kb/

Pozor součástí NetBeans? IDE je i GlassFish? Server Open Source Edition 4.1.1, který ale obsahuje chybu, díky níž nelze nakonfigurovar email session v administraci serveru.

Pro nápravu této chyby je nutné stáhnout novější verzi např. GlassFish? 5.0 - Full Platform.

4) GlassFish? server

Verze - GlassFish? 5.0 - Full Platform
Odkaz na download - https://javaee.github.io/glassfish/download
Odkaz na dokumentaci - https://javaee.github.io/glassfish/documentation

Stažený zip soubor rozbalíme a uložíme na C:\. Do Netbeans přidáme nový server přes Services => servers => pravým tlačítkem add server. Dále pstupujeme dle screenshotů v příloze.

5) Konfigurace GlassFish? serveru

Konfigurace je dostupná na této adrese: http://localhost:4848/common/index.jsf

Zde přidáme konfiguraci pro JavaMailSession:
JNDI Name: mail/Lemma
Mail Host: 127.0.0.1
Default User: lemma@…
Default Sender Address: lemma@…
Deployment Order: 100
Status: Enabled
Store Protocol:imap
Store Protocol Class:com.sun.mail.imap.IMAPStore
Transport Protocol:smtp
Transport Protocol Class:com.sun.mail.smtp.SMTPTransport

6) Otevřeme projekt stažený z SVN

SVN - https://lemma.ics.muni.cz/svn/lemma/

Organizace SVN repozitáře je popsána zde - https://lemma.ics.muni.cz/trac/lemma/wiki/ReservationSystemDevelopment

V NetBeans? IDE otevřeme projekt stažený z SVN.

7) Další potřebná konfigurace před spuštěním

  • Přihlašování:

Na C:\ nahrát soubor config.properties
Obsah souboru může vypadat následovně:

[login]
eppn=475960@muni.cz

cn=Bc. Tomáš Kovařík

mail=475960@mail.muni.cz
affiliation=member@muni.cz, employee@muni.cz
uselogin=Yes

Důležité upozornění: Uživatel, který je nadefinovaný v souboru config.properties musí existovat i v systému (Je možnost použít již existujícího admina, nebo vložit řádek přímo do databáze, kterou jsme importovali).

  • Konfigurace databáze:

V projektu přejdeme do modulu Entity Persistance =>other Sources => setup => editovat soubor glassfish-resources.xml Nastavení vypadá následovně:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE resources PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Resource Definitions//EN" "http://glassfish.org/dtds/glassfish-resources_1_5.dtd">
<resources>
    <jdbc-connection-pool allow-non-component-callers="false" associate-with-thread="false" connection-creation-retry-attempts="0" connection-creation-retry-interval-in-seconds="10" connection-leak-reclaim="false" connection-leak-timeout-in-seconds="0" connection-validation-method="auto-commit" datasource-classname="org.postgresql.ds.PGSimpleDataSource" fail-all-connections="false" idle-timeout-in-seconds="300" is-connection-validation-required="false" is-isolation-level-guaranteed="true" lazy-connection-association="false" lazy-connection-enlistment="false" match-connections="false" max-connection-usage-count="0" max-pool-size="32" max-wait-time-in-millis="60000" name="post-gre-sql_lemma_postgresPool" non-transactional-connections="false" pool-resize-quantity="2" res-type="javax.sql.DataSource" statement-timeout-in-seconds="-1" steady-pool-size="8" validate-atmost-once-period-in-seconds="0" wrap-jdbc-objects="false">
        <property name="serverName" value="localhost"/>
        <property name="portNumber" value="5432"/>
        <property name="databaseName" value="lemma"/>
        <property name="User" value="lemma"/>
        <property name="Password" value="12341234"/>
        <property name="URL" value="jdbc:postgresql://localhost:5432/lemma"/>
        <property name="driverClass" value="org.postgresql.Driver"/>
    </jdbc-connection-pool>
    <jdbc-resource enabled="true" jndi-name="jdbc/Lemma" object-type="user" pool-name="post-gre-sql_lemma_postgresPool"/>
</resources>

8) Spuštění

V NetBeans? IDE provedeme Clean and Build na projekt Lemma-ear. Po úspěšném provedení Buildu stiskneme Run projekt. Pokud se vše povede, je spuštěn prohlížeč s domovskou stránkou RS, přihlášeného uživatele (je přihlášen uživatel, který je nadefinován v souboru config.properties.

Adresa

http://localhost:8080/RS/ a http://localhost:8080/WMA/


V příloze jsou screenshoty a GlassFish? server, který byl odzkoušen na localhostu. https://drive.google.com/open?id=1geB0kC6rVZWHDTyTppRQnZRcrTEDHFNB

Last modified 20 months ago Last modified on 02/23/19 12:57:00