Egy instance-on belül egy JVM-ben futnak az alkalmazások, így pl. egymásra tudnak hatni a System.setProperty()-vel:
az egyik webalkalmazás beleír, a másik ki tudja olvasni. Ugyanez igaz a HttpTool.trustAll()-ra is !
admin password
Ha nem tudjuk az adminisztrátor felhasználó (admin) jelszavát,
akkor lehetséges hogy az admin nemlétező felhasználó,
helyette csak egy anonymous felhasználó van, és a glassfish minden indításakor
egy véletlen jelszó generálódik, mely megtalálható ebben a fájlban:
A fájlban lévő jelszóval be lehet lépni az adminisztrációs felületre. A felhasználónév legyen: admin
Ez a módszer kényelmetlen, ezért helyette fel kell venni a valódi admin felhasználót
a glassfish webes felületén:
Itt kell felvenni az admin-t (ha még tényleg nem létezik), és megadni a hozzátartozó jelszót.
Fontos hogy az admin benne legyen az asadmin group-ban, hogy adminisztrálhassa a glassfish-t.
Ettől kezdve ezzel a jelszóval lehet majd belépni. Az anonymous felhasználó pedig törölhető.
asadmin
Ha az asadmin parancs nem hajlandó futni, hibát üzen, az lehetséges hogy a java verzió miatt van.
Talán csak a 8-as java-val képes együttműködni, ezért ezt állítsuk be a parancssorban:
Az asadmin program a {glassfishHome}/glassfish/bin könyvtárban található,
elindítása után egy asadmin> prompt látható.
Itt adhatók ki az asadmin alparancsok, lásd alább:
list-domains
Domain-ek listázása, státuszaikkal (fut / nem fut).
start-domain {domainNév}
Domain elindítása, mely tulajdonképpen a glassfish indítása. A domainNév nem kötelező, ha csak egyetlen domain van.
Ezután hívható böngészőből a default 4848-as admin port.
stop-domain {domainNév}
Domain leállítása, mely tulajdonképpen a glassfish leállítása. A domainNév nem kötelező, ha csak egyetlen domain van.
Ezután már nem hívható böngészőből a default 4848-as admin port.
backup-domain --backupdir /Users/xesj {domainNév}
Domain beállítások lementése zip-fájlba, mely több percig futhat.
restore-domain --filename {zipFájlNév} --force {domainNév}
Domain beállítások visszaállítása, mely több percig futhat.
Ezzel a módszerrel nem állítható vissza 4-es glassfish-re egy 3-as glassfish domain mentése !
Mivel a {glassfishHome}\glassfish\domains\{domainNév}\config\domain.xml
fájlban megvannak a jdbc és egyéb beállítások, ezen adatok kiolvashatók, lementhetők,
és így egy másik glassfish-ben manuálisan létrehozhatók.
Nem biztos hogy átmásolható a domain.xml, eltérő lehet a struktúrájuk a két glassfish-ben !
create-domain {domainNév}
Domain létrehozása.
delete-domain {domainNév}
Domain törlése.
list-instances
Instance-ok listázása, státuszaikkal (fut / nem fut).
start-instance {instanceNév}
Instance elindítása.
stop-instance {instanceNév}
Instance leállítása.
autodeploy
Egy alkalmazás telepítését a webes felületen kívül is el lehet végezni:
A kész war fájlt be kell másolni a {glassfishHome}/glassfish/domains/{domainNév}/autodeploy könyvtárba.
A glassfish észreveszi hogy új war került a könytárba, vagy megáltozott a régi war.
Ezután automatikusan telepíti az alkalmazást önmagába, és amikor a folyamat véget ért,
létrehoz ugyanebben a könyvtárban a war fájl nevével megegyező
de _deployed kiterjesztésű üres fájlt. Ezután az alkalmazás már hívható, és a webes felületen is
megjelenik az alkalmazások között.
beállítások
A JDBC pool-ban 0-ról induljon a connection-ök száma: "Initial and Minimum Pool Size: 0"
Így ha a connection nem tiszta (pl. nem lezárt kurzorokat tartalmaz), akkor sem marad meg örökké,
mert időnként új (tiszta connection) keletkezik.
Mivel egy adott porton érhetők el az alkalmazások, lehetséges hogy a 80-as portról szeretnénk ide proxy-zni.
Csak http proxy-t használjunk hozzá ! A modjk, és ajp proxy-k teljesen megbízhatatlanul működnek.
bug
Ha a betelepített alkalmazás el sem indul, akkor a projekthez hozzá kell adni az apache-log4j library-t.
glassfish-web.xml
A glassfish-web.xml helye a web.xml mellett van.
A glassfish default beállítása szerint ha egy osztály megtalálható a glassfish lib könyvtára alatt,
és a projekt is tartalmazza a war-ban
lévő lib könyvtárban akkor az előbbit fogja betölteni és használni. Ennek letiltása,
vagyis hogy a war-ba csomagolt jar-fájlok legyenek
az elsődlegesen használtak, ezt kell beállítani a glassfish-web.xml fájlban:
https tanúsítvány
Amikor egy webalkalmazás fut a glassfish-en, és egy https-címet hív meg, ellenőrzésre kerül annak tanúsítványa.
Amennyiben a tanúsítvány (vagy a tanúsítvány lánc) hibás, egy exception váltódik ki
"unable to find valid cert" hibaüzenettel.
A probléma egyik lehetséges megoldása, hogy a glassfish alá be kell telepíteni a tanúsítványt.
Ehhez a java keytool parancsát kell használni, mellyel a glassfish könyvtárában már meglévő 2 tanúsítvány tárolóba
kell importálni a tanusítványt (esetleg a lánc több tagját is). A https-címet egy böngészőbe behívva megnézhető,
és letölthető a tanúsítvány, és a lánc felette lévő tagjai (az aláírók).
Ide kell importálni az aláíró tanúsítványát:
Ide kell importálni a tanúsítványt:
Keytool import tudnivalók:
A default jelszó: "changeit"
A "trusted ?" kérdésre "yes"-t kell válaszolni.
A tanúsítványoknak tetszőleges alias nevek adhatók
Az import műveletek után a glassfish-t újra kell indítani
Keytool import példák a {glassfish_home}/domains/domain/config könyvtárban állva:
jdbc driver
A jdbc driver fájlokat ebbe a könyvtárba másoljuk, itt biztos megtalálja a payara:
Bemásolás után a payarát újra kell indítani.
környezet paraméter
Ahhoz hogy a java webalkalmazásból le tudjuk kérdezni milyen glassfish-környezetben fut,
be kell állítani a glassfish-ben egy JVM-nek szóló paramétert, mely legyen "kornyezet",
tartalma például "dev", mely jelzi hogy ez a glassfish fejlesztői környezet, nem pedig éles.
Beállítás a glassfish admin felületén:
Ezt minden instance-ba be kell állítani ahol környezet lekérdező alkalmazás fut,
de az instance-t nem szükséges újraindítani.
Így a java webalkalmazás kiolvashatja a környezet paramétert:
log megtekintés
A log állomány nemcsak a payara webes felületén, hanem egy url-lel is megtekinthető:
post too large
Ez a hibaszöveg akkor fordul elő amikor POST módú http-kéréssel hívják a servert, és túl sok adat utazik.
Glassfish esetén az adminisztrációs felületen beállítható mekkora lehet a post kérésbe foglalt adatmennyiség:
A beállítás után nem szükséges a glassfish-t újraindítani.
resource betöltés
Resource-ok (JDBC kapcsolat leíró, system property) betöltése a glassfish-be egy script-tel is lehetséges,
nemcsak a webes felületen keresztül.
Például az alábbi resources.txt állomány:
(a create-jdbc-connection-pool sort a példával ellentétben nem szabad megtörni!)
így tölthető be:
ahol a pwd.txt tartalma:
(az "AS_ADMIN_PASSWORD=" előtag kötelező a jelszó előtt!)