Glasshish v3 Installation on Ubuntu / Debian

Όλοι όσοι έχουν ασχολιθεί με J2EE development σίγουρα σε κάποια περίοδο έχουν συναντήσει άρθρα τα οποία περιγράφουν το νέο application server της SUN (ORACLE πλέον) τον Glassfish στην περίφημη έκδοσή του την v3.

Η Αλήθεια είναι πως πρόκειται για ένα πολύ μεγάλο βήμα και για έναν πάρα πολύ καλό full j2ee compiant application server ο οποίος έχει πολλές καλές αποκρίσεις και απο πλευράς ταχύτητας αλλά και χρηστηκότητας.

Ας δούμε λοιπόν την εγκατάσταση του σε Ubuntu 10.04 LTS. Με όμοιο τρόπο γίνεται και σε Debian Lenny.

Κάνουμε login σε ένα terminal με χρήστη root ή εναλλακτικά τρέχουμε sudo -i για να έχουμε ισοδύναμη κατάσταση. Εγκαθιστούμε το maven2 και το sun java6 developers kit δίνοντας

[bash]
apt-get -y install maven2 sun-java6-jdk java-common
[/bash]


Μετά κάνουμε το σύστημα μας να έχει ως προεπιλεγμένη VM αυτή του JDK της SUN και όχι του OPENJDK, και γενικά αυτό είναι καλύτερη επιλογή αφού το OPENJDK έχει αρκετό δρόμο ακόμα για να καλύψει όλα τα standarts που έχει το JDK της SUN. Δίνουμε λοιπόν

[bash]
update-alternatives –config java
[/bash]

και επιλέγουμε το νούμερο που αναφέρει τη SUN Java select java ubuntu Αφου τελειώσει η εγκατάσταση το επόμενο βήμα είναι και κατεβάσουμε το installation file δίνοντας

[bash]
wget http://download.java.net/glassfish/3.0.1/release/glassfish-3.0.1.zip
[/bash]

Αντιγράφουμε το zip στο / και κάνουμε unzip (αν δεν έχουμε το unzip το εγκαθιστούμε με apt-get install unzip)

[bash]
mv glassfish-3.0.1.zip /
cd /
unzip glassfish-3.0.1.zip
[/bash]

Στη συνέχεια δίνουμε

[bash]
useradd –system glassfish -d /glassfishv3
chgrp -R admin /glassfishv3
chown -R glassfish /glassfishv3
chmod -R +x /glassfishv3/bin/
chmod -R +x /glassfishv3/glassfish/bin/
[/bash]

Μετά δημιουργούμε ενα αρχείο που θα είναι αυτό της εκκίνησης

[bash]
pico /etc/init.d/glassfish
[/bash]

Και μέσα γράφουμε

[bash]
#! /bin/sh

export JAVA_HOME=/usr/lib/jvm/java-6-sun
GLASSFISHPATH=/glassfishv3/bin

case "$1" in
start)
echo "starting glassfish from $GLASSFISHPATH"
sudo -u glassfish $GLASSFISHPATH/asadmin start-domain domain1
;;
restart)
$0 stop
$0 start
;;
stop)
echo "stopping glassfish from $GLASSFISHPATH"
sudo -u glassfish $GLASSFISHPATH/asadmin stop-domain domain1
;;
*)
echo $"usage: $0 {start|stop|restart}"
exit 3
;;
esac
:
[/bash]

Τέλος λοιπόν φροντίζουμε να ξεκινά μαζί με το σύστημα

[bash]
chmod a+x /etc/init.d/glassfish
update-rc.d glassfish defaults
[/bash]

Και ξεκινάμε το server

[bash]
/etc/init.d/glassfish start
[/bash]

αν ολα πανε καλα θα δούμε

[bash]
Waiting for DAS to start ……
Started domain: domain1
Domain location: /glassfishv3/glassfish/domains/domain1
Log file: /glassfishv3/glassfish/domains/domain1/logs/server.log
Admin port for the domain: 4848
Command start-domain executed successfully.
[/bash]

Ας κάνουμε λοιπον και μερικά βήματα ακόμα για να ασφαλίσουμε και να ρυθμίσουμε το server μας Το επιβεβαιώνουμε ανοίγοντας ενα broswer και δίνοντας http://localhost:8080 οπότε και θα δούμε glassfish welcome screen Ανοίγουμε ενα broswer και πηγαίνουμε στο http://localhost:4848 glassfish v3 admin panel opening Και μεσα μέσα στη κονσόλα glassfish v3 administration panel preview Αν δε μπορούμε να δούμε τη consola απο άλλο μηχάνημα και αλλά το θέλουμε θα πρέπει να σταματήσουμε το apparmor ( /etc/init.d/apparmor stop ) Πηγαίνουμε Enterprise Server → Administrator Password και βάζουμε password και πατάμε save Enjoy…

Passionate Archer, Runner, Linux lover and JAVA Geek! That's about everything! Alexius Dionysius Diakogiannis is a Senior Java Solutions Architect and Squad Lead at the European Investment Bank. He has over 20 years of experience in Java/JEE development, with a strong focus on enterprise architecture, security and performance optimization. He is proficient in a wide range of technologies, including Spring, Hibernate and JakartaEE. Alexius is a certified Scrum Master and is passionate about agile development. He is also an experienced trainer and speaker, and has given presentations at a number of conferences and meetups. In his current role, Alexius is responsible for leading a team of developers in the development of mission-critical applications. He is also responsible for designing and implementing the architecture for these applications, focusing on performance optimization and security.