Instalační manuál 1. Stáhnout si glassfishe: https://glassfish.dev.java.net/downloads/v2.1.1-final.html Je to .jar archiv, který se nainstaluje následujícím způsobem: Nejdříve je třeba si nastavit proměnnou prostředí a to následujícím způsobem:
Linux: Většina Linuxových distribucí pracuje s Javou nebo vám dovoluje ji nainstalovat z internetu. Typické místo, kde se nachází instalace Javy je /usr/lib/jvm/java-{version}/. Pokud si nejste jisti, zda máte nainstalovanou Javu či ne, můžete stáhnout nejnovější Java 6 JDK od společnosti Sun ( http://java.sun.com/) a nainstalovat ji do vašeho domovského adresáře. Pokud již víte, kde přesně máte Javu nainstalovanou, jste připraveni nastavit proměnné prostředí. Předpokládáme, že používáte bash jako shell. Pro jednoduché nastavení proměnné prostředí pro váš aktuální shell, napište do terminálu následující příkaz: export JAVA_HOME={cesta k vasi java installaci}
Toto nastavení bude ztracené, když zavřete shell. Tpro to, abyste nastavili proměnnou prostředí pro všechny uživatele shellu, editujte následující soubor ~/.bashrc a přidejte tuto řádku: export JAVA_HOME={cesta k vasi java installaci}
někam na konec souboru. Možná budete chtít přidat také Java bin adresář do vašich proměnných prostředí (to je místo, kde systém hledá spustitelné aplikace). K tomu, abyste to udělali, přidejte následující řádek za řádek zmíněný výše: export PATH=$JAVA_HOME/bin:$PATH
Nastavte tuto proměnnou prostředí globálně pro celý počítač, editujte soubor /etc/profile a přidejte řádku: export JAVA_HOME={cesta k vasi java installaci}
někam na konec souboru. Windows XP: Klikněte na "Start" -> "Control Panel" a otevřete "System". Vyberte záložku "Advanced" a klikněte na tlačítko "Environment Variables". V panelu "System Variables" přidejte proměnnou prostředí "JAVA_HOME" a jako její adresu vložte správnou cestu k sdresáři s nainstalovaným JDK (např. Na mém PC je to "C:\Program Files\Java\jdk1.6.0_04"). Na jiných operačních systémech tomu bude podobně. Upozorňuji, že windows chtějí po nastavení proměnné prostředí restart (nepůjde vám jinak korektně přes terminál nainstalovat GlassFish).
Pak už následuje samotná instalace glassfishe: • Spusťte terminál: % java -Xmx256m -jar jmeno_souboru.jar
Tento příkaz rozbalí GlassFish a vytvoří novou adresářovou strukturu s názvem 'glassfish'. % cd glassfish
• Pokud používáte operační systém odvozený z UNIX(tm), nastavte oprávnění pro binární soubory obsahující instalaci GlassFishe následujícím příkazem: % chmod -R +x lib/ant/bin % lib/ant/bin/ant -f setup.xml
Nebo ve Windows: % lib\ant\bin\ant -f setup.xml
• Pro GlassFish v2 UR1 s podporou instalace, jen změňte krok 4 (viz. výše): % lib/ant/bin/ant -f setup-cluster.xml
Nebo ve Windows: % lib\ant\bin\ant -f setup-cluster.xml
2. Nastavit si tento aplikační server v NetBeans. Záložka services (pokud jí tam nemáte, dá se vyvolat z menu "Window -> Services").
Pravý klik na "Servers" -> Add Server -> GlassFish v2.x. Next.
Nastavit Server Location na glassfish "C:\glassfish\". Měla by se automaticky zvolit možnost "Register Local Default Domain" s hodnotou domain: "localhost:4848(...\domains\domain1).
Kliknout next. Dál už je nastavení přístupu. Já jsem vycházel z nastavení, co mají v původním projektu, tj. username: "admin", password: "adminadmin", ale mělo by to být jedno (pomocí těchto údajů se pak přihlašujete do Admin konzole Glassfishe). 3. U VoteApplet to vyhazuje poškozený reference. Pravý klik na projekt (VoteApplet) -> Properties -> Libraries)
a postupně vložte všechny potřebné jary z "C:\glassfish\lib" - jsou potřeba ty, který jsou tam označené jako broken, takže nejlepší, abyste se v tom neztratili, je přidat jar a odstranit tu nefunční referenci a takhle pro všechny. Je potřeba adresář lib s danými knihovnami (Add JAR/Folder) pro chod RMI, které lze naleznout v instalaci Glassfish: • • • • •
appserv-admin appserv-deployment-client appserv-ext appserv-launch appserv-rt
• • • •
j2ee javaee jce (v adresáři evolby s RSA/VoteApplet/dist/lib/ nebo v java/jre) rt (v adresáři evolby s RSA/VoteApplet/dist/lib/ nebo v java/jre)
Nezapomeňte VoteApplet v properties -> záložka Application -> zašktnout Self Signed Jar. Při buildu se všechny JARy, které projekt obsahuje, podepíšou certifikátem. Pokud vám nefunguje podepisování v NetBeans musíte si JARy podepsat jednotlivě : • v příkazové řádce se přepnout do binárek jdk (např. C:\Program Files\Java\jdk1.6.0_14\bin) • vygenerovat úložiště klíčů a přidat do něho svůj nový klíč : keytool -genkey -keystore meUlozisteKlicu -alias alias • dále je třeba vygenerovat vlastní certifikát : keytool -selfcert -alias alias -keystore meUlozisteKlicu • chcete-li můžete se ujistit, zda byl certifikát vygenerovaný : keytool -list -keystore meUlozisteKlicu • nakonec vygenerovaným certifikátem podepište všechny jary projektu : jarsigner -keystore meUlozisteKlicu podepisovanyJar.jar alias • po podepsání všech jarů zkontrolujte, jestli máte v jnlp souboru tyto tagy : <security>
4. Nastavení Databáze. Stáhněte si původní Java DB databázi vykopírovanou z původního projektu z této adresy: https://www.assembla.com/spaces/evolby/documents . Soubor rozzipujte a obsah zkopírujte do složky vaši Java DB, napr.: C:\Documents and Settings\user\.netbeans-derby. Dále pak v NetBeans v záložce services -> rozkliknout Databases -> pravé tlačítko na JavaDB -> Create Database... a nastavit následující údaje: Controller databáze: • name: ControllerDB • login: app • password: app Validátor databáze: • name: ValidatorDB • login: app • password: app Counter databáze: • name: CounterDB • login: app • password: app
Person databáze: Je třeba do této databáze manuálně vložit uživatele, které jsou v REALMu na GlassFishi (viz. bod 6 podúkol l)) • name: PersonDB • login: app • password: app 5. Checkout z SVN – v Netbeans záložka Team -> Checkout.
Pokud nemáte, jako já, nainstalované SVN, NetBeansy si poradí a stáhnou je automaticky z internetu – to vyžaduje pak jejich restart. V linuxu pak: sudo aptitude install subversion a v NetBeansech nastavit cestu na /usr/bin/.
Do položky „Repository URL“ nastavit "http://svn6.assembla.com/svn/evolby" a dále pak vaše přihlašovací údaje na SVN. Dát next a jako „Repository Folders“ nastavit "src-new/evolby". Zatrhnout „Scan for NetBeans Projects after Checkout a dát finish. Vyskočí dialogové okno a dáme Close.
6. Nastavení JMS a DB. Pro vstup do admin konzole z NetBeans zvolte záložku Windows -> services -> servers -> GlassFish v2.x - pravý klik -> view admin console.
V internetovém prohlížeči se otevře nové okno s výzvou k zadání přihlašovacích údajů. Zadáte ty údaje, které jste nastavili v bodu 2 – tj. v našem případě username: "admin", password: "adminadmin".
A dále postupujete následovně: a) V levém menu Resources -> JMS Resources -> Connection Factories b) Kliknout na tlačítko New… c) Vyplnit JNDI Name: jms/votingCardsFactory, vybrat javax.jms.QueueConnectionFactory a kliknout na OK a znova kliknout na tlačítko New... a vyplnit JNDI Name: jms/validatedVotesFactory, a opět vybrat javax.jms.QueueConnectionFactory a kliknout na OK d) V levém menu Configuration -> Java Message service -> Physical Destinations e) Kliknout na tlačítko New… f) Vyplnit name: VotingCardsQueue, vybrat javax.jms.Queue a kliknout na OK a znova kliknout na tlačítko New... a vyplnit name: ValidatedVotesQueue, vybrat javax.jms.Queue a kliknout na OK g) V levém menu Resources -> JMS Resources -> Destination Resources h) Kliknout na tlačítko New… i) Vyplnit JNDI Name: jms/votingCards, vyplnit Physical Destination Name (musí být stejné jako název physical destination, který jste nastavili krok před, v našem případě VotingCardsQueue), vybrat resource type javax.jms.Queue a kliknout na OK a znova kliknout na tlačítko New... a vyplnit JNDI Name: jms/validatedVotes, vyplnit Physical Destination Name (musí být stejné jako název physical destination, který jste nastavili krok před, v našem případě ValidatedVotesQueue), vybrat resource type javax.jms.Queue a kliknout na OK
j) V levém menu Configuration -> Security -> Realms -> file -> Manage Users k) Kliknout na tlačítko New… l) Přidejte jednotlivě tyto účty: UserID: admin
Group List: asadmin
password : admin
UserID: administrator
Group List: administrators
password : admin
UserID: commissioner1
Group List: commission
password : com
UserID: commissioner2
Group List: commission
password : com
UserID: voter1
Group List: voters
password : vot
UserID: voter2
Group List: voters
password : vot
to jsou účty pro administrátora e-voleb, účty pro komisaře e-voleb a účty pro voliče e-voleb m) Můžete se odhlásit od AS
Pro otestování, jestli jste vše nastavili dobře, můžete zkusit vytvořit Message-driven beanu a v Server Destination by mělo být vidět jms/votingCards. 7. Deployment (pravé tlačítko v levém menu v NetBeansech na jednotlivé položky) musíte dělat v daném pořadí: EvolbyCounter, EvolbyValidator, EvolbyController, EvolbyWeb2. Jestli vám to vyhodí chybu, zkuste to znovu začít deployovat od Counteru dál.
8. Pokud se všechno podařilo, a tedy deployment nevyhodil chyby můžete na EvolbyWeb 2 dát "Run" a měl by se v prohlížeči spustit projekt.
9. Dále uvádím poznámky: •
Chyba 500 a její derivace = špatně nastavená databáze
•
Chyba 400 a její derivace = chybně nastavený glassfish
•
Deploy musí proběhnout bez vážných chyb! Tj. Žádné podtržené červené svinstvo, ale pouze warningy typu: JDO76609: Got SQLException executing statement "CREATE TABLE ELECTION (ID INTEGER NOT NULL, TYPE VARCHAR(255), NAME VARCHAR(255), PRIMARY KEY (ID))": java.sql.SQLException: Table/View 'ELECTION' already exists in Schema 'APP'.