%man; ]>
Java και Jakarta Tomcat στο FreeBSD Victoria Chan
vkchan@kendryl.net
Hiten Pandya
hiten@uk.FreeBSD.org
2002 Victoria Chan Hiten Pandya $FreeBSD$ Το έγγραφο αυτό φιλοδοξεί να βοηθήσει οποιονδήποτε θέλει να εγκαταστήσει και να χρησιμοποιήσει την Java στο FreeBSD με τη μικρότερη δυνατή προσπάθεια. Σχεδιάστε να ασχοληθείτε μια ολόκληρη μέρα με το αυτό το εγχείρημα, καθώς θα χρειαστεί αρκετός χρόνος να μαζέψετε όλα τα κομμάτια και να τα μεταγλωττίσετε πρώτα χωριστά και στο τέλος όλα μαζί. Θα σας δείξουμε επίσης πως να εγκαταστήσετε τον διάσημο Jakarta Tomcat Servlet και JSP container στο λειτουργικό σύστημα FreeBSD.
Εισαγωγή Η γλώσσα προγραμματισμού Java γεννήθηκε στις 23 Μαϊου 1995. Κάποιος θα πίστευε πως μέσα σε όλο αυτό το χρονικό διάστημα, οι εφαρμογές Java θα έπρεπε να είναι πολύ έυκολο να εγκατασταθούν και να εκτελεστούν από ένα μοναδικό package ή port του FreeBSD, κάνοντας έτσι την Java προσβάσιμη στο ευρύ κοινό. Δυστυχώς, τα πράγματα δεν είναι έτσι, καθώς η διανομή της Java είναι στενά ελεγχόμενη από την Sun Microsystems, η οποία απαγορεύει την αναδιανομή. Όλα τα Java Applets πρέπει να μεταγλωττίζονται, μαζί με το ίδιο το Java Development Kit που προέρχεται από την Sun Microsystems. Όλα αυτά τα συστατικά πρέπει να αναμειχθούν με τη σωστή σειρά, να συγκροτηθούν και να μεταγλωττιστούν από τον τελικό χρήστη. Με μια τέτοια φιλοσοφία διανομής, η γνώμη μου είναι πως η Java θα παραμένει για πάντα στη χρήση των developers ή των hackers και μόνο. Οπωσδήποτε, αυτό ανακάλυψα όταν χρειάστηκε να παρέχω στον web server που έχω κάποιες .jsp σελίδες, για λογαριασμό κάποιου πελάτη μου και έπρεπε να κάνω τον www/jakarta-tomcat να συνεργαστεί με τον www/apache13 στο FreeBSD σύστημά μου. Το σημείο εγκατάστασης του Tomcat είναι πολύ ξεκάθαρο, αλλά η δυσκολία που συνάντησα ήταν στο να εγκαταστήσω ένα λειτουργικό Java Development Kit για το FreeBSD 4.X, καθώς η Sun Microsystems παρέχει Binaries μόνο για τα λειτουργικά συστήματα: Linux, Solaris, καθώς και Windows NT. Αυτό σημαίνει πως έπρεπε να μεταγλωττίσω το δικό μου JDK για το FreeBSD. Ξεκίνησα ψάχνοντας για σχετική τεκμηρίωση στο Internet. Ανακάλυψα σχετικά γρήγορα ότι θα χρειαστώ επιπλεόν πηγαίο κώδικα, καθώς και patches για τον κύριο πηγαίο κώδικα. Αφού είχα συγκεντρώσει ότι χρειαζόμουν όμως, δεν είχα παρά ελάχιστη τεκμηρίωση για το τι θα έπρεπε να γίνει. Στο άρθρο αυτό, θα ανακαλύψετε πως να εγκαταστήσετε το Java Development Kit για το FreeBSD, καθώς και πως να εγκαταστήσετε μια λειτουργική έκδοση του Tomcat. Σας παρέχεται και μια λίστα με για περαιτέρω ανάγνωση. Το Περιβάλλον Java Βεβαιωθείτε ότι έχετε μια ενημερωμένη συλλογή από ports καθώς το make θα αποτύχει αν προσπαθήσει να μεταγλωττίσει παλαιότερο πηγαίο κώδικα. Μπορείτε να ανανεώσετε ολόκληρη την συλλογή των ports χρησιμοποιώντας το CVSup. Διαβάστε το σχετικό κεφάλαιο του Εγχειριδίου για περισσότερες πληροφορίες. Μπορείτε επίσης να κατεβάσετε μόνοι σας τα ports που χρειάζεστε από τη διεύθυνση πριν ξεκινήσετε την διαδικασία εγκατάστασης. Θα χρειαστείτε υποστήριξη στον πυρήνα σας για Εξομοίωση Linux (Linux-ABI). Απλά προσθέστε την ακόλουθη επιλογή στο αρχείο ρύθμισης του πυρήνα σας και μεταγλωττίστε τον ξανά. Οδηγίες για τη μεταγλώττιση του πυρήνα μπορείτε να βρείτε στο Εγχειρίδιο του FreeBSD: options COMPAT_LINUX Η παραπάνω επιλογή θα προσθέσει την υποστήριξη Linux-ABI στον πυρήνα σας. Η παρακάτω λίστα υποχρεωτικών εξαρτήσεων πρέπει να ικανοποιηθεί από εσάς χωρίς αυτόματο τρόπο και με τη δοσμένη σειρά. Οι εξαρτήσεις που ικανοποιούνται με αυτόματο τρόπο δεν περιέχονται εδώ. java/jdk13 java/linux-jdk13 archivers/gtar archivers/bzip2 archivers/unzip archivers/zip Θα χρειαστεί να αποκτήσετε τα ακόλουθα: Κατεβάστε το αρχείο bsd-jdk131-patches-5.tar.gz από τη διεύθυνση και τοποθετήστε το κάτω από το φάκελο /usr/ports/distfiles. Στη συνέχεια ανοίξτε τον web browser και επισκεφθείτε τη διεύθυνση όπου θα βρείτε τα SDK downloads. Πατήστε στο κουμπί continue κάτω από το GNUZIP Tar Shell Script. Διαβάστε κάθε λέξη από την άδεια πριν αποφασίσετε να πατήσετε το κουμπί Accept! Θα μεταφερθείτε σε μια σελίδα με τίτλο Download Java(TM) 2 SDK, Standard Edition 1.3.1_02. Μεταβείτε στο τέλος της σελίδας και πιέστε το κουμπί HTTP download. Όταν εμφανιστεί το παράθυρο Αποθήκευση ως, σιγουρευτείτε ότι θα πιέσετε το κουμπί Άνοιγμα αντί για το κουμπί Αποθήκευση. Θα εμφανιστεί ένα ακόμα παράθυρο Αποθήκευση ως—αυτή τη φορά επιλέξτε Αποθήκευση και θα είστε σε θέση να αποθηκεύσετε το αρχείο j2sdk-1_3_1_02-linux-i386.bin. Αποθηκεύστε κι αυτό το αρχείο στο φάκελο /usr/ports/distfiles. Πηγαίνετε στη διεύθυνση . Στον πίνακα, κάτω από το Produce Description, με τίτλο Java 2 SDK 1.3.1, πατήστε στο κουμπί download που βρίσκεται στο δεξί κελί. Θα μεταφερθείτε σε μια σελίδα με τίτλο Sign On, όπου θα πρέπει να συνδεθείτε αν έχετε ήδη ένα λογαριασμό ή να εγγραφείτε για να αποκτήσετε πρόσβαση. Όταν συνδεθείτε, θα μεταφερθείτε σε μια Legal σελίδα, στην οποία θα πρέπει να αποδεχθείτε τους όρους άδειας: Μεταβείτε στο κάτω μέρος της σελίδας (διαβάζοντας ταυτόχρονα την άδεια) και πατήστε στο κουμπί Continue. Η επόμενη σελίδα είναι η Receipt. Εδώ είναι το σημείο που θα αποθηκεύσετε τον αριθμό παραγγελίας σας. Θα σας δοθεί η δυνατότητα να επιλέξετε μια περιοχή που βρίσκεται σχετικά κοντά σε εσάς. Πατήστε στο κουμπί Java 2 SDK, Standard Edition, version 1.3.1. Αποθηκεύστε το αρχείο j2sdk-1_3_1-src.tar.gz κάτω από το φάκελο /usr/ports/distfiles/. Βεβαιωθείτε ότι θα διαβάσετε την άδεια χρήσης που έχει εκδοθεί από την Sun Microsystems Corp. Υπάρχουν αρκετοί περιορισμοί στην χρήση της Java στους οποίους καλείστε να συμμορφωθείτε. Το FreeBSD project δεν αναλαμβάνει καμμία ευθύνη για τις πράξεις σας. Μη σβήσετε κανένα από τα αρχεία που έχετε κατεβάσει ως τώρα, καθώς χρειάζονται για τη μεταγλώττιση μερικών native ports του FreeBSD, κάτι που θα δούμε στη συνέχεια του κειμένου. Τώρα, αφού έχετε συγκεντρώσει όλο τον πηγαίο κώδικα καθώς και τα ports μπορείτε να ξεκινήσετε τη μεταγλώττιση του java/linux-jdk13: &prompt.root; cd /usr/ports/archivers/gtar; make all install clean &prompt.root; cd /usr/ports/archivers/unzip; make all install clean &prompt.root; cd /usr/ports/archivers/zip; make all install clean Και τέλος: &prompt.root; cd /usr/ports/java/linux-jdk13 &prompt.root; make all install clean Όταν τελειώσει η διαδικασία μεταγλώττισης του java/linux-jdk13, θα πρέπει να ελέγξετε τη σωστή λειτουργία του. Για να το κάνετε αυτό δοκιμάστε τα ακόλουθα: &prompt.root; cd /usr/local/linux-jdk1.3.1/bin &prompt.root; ./java -version Η έξοδος της παραπάνω εντολής θα πρέπει να είναι η ακόλουθη: java version "1.3.1_02" Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_02-b02) Classic VM (build 1.3.1_02-b02, green threads, nojit) Αν δεν πήρατε την σωστή απόκριση, θα πρέπει να κάνετε τα εξής: &prompt.root; cd /usr/ports/java/linux-jdk13 &prompt.root; make deinstall Και ύστερα σιγουρευτείτε ότι ο φάκελος /usr/local δεν περιέχει τον υποφάκελο linux-jdk1.3.1. Αν βρείτε τον υποφάκελο αυτό, σβήστε τον. Επαναλάβετε τη διαδικασία μεταγλώττισης και εγκατάστασης για το πακέτο java/linux-jdk13. Για να μεταγλωττίσετε το native Java Development Kit 1.3.1 για το FreeBSD, κάντε τα ακόλουθα: Σιγουρευτείτε ότι το αρχείο j2sdk-1_3_1-src.tar.gz βρίσκεται στον φάκελο /usr/ports/distfiles. Το αρχείο αυτό χρειάζεται για την εφαρμογή των patch-sets που θα δούμε παρακάτω. Θα χρειαστεί να κατεβάσετε το patch set για τη μεταγλώττιση του port. Το αρχείο αυτό ονομάζεται bsd-jdk131-patches-6.tar.gz. Θα πρέπει επίσης να βεβαιωθείτε για την ακεραιότητα του αρχείου ταριάζοντας το με το ακόλουθο MD5 checksum. MD5 (bsd-jdk131-patches-6.tar.gz) = 9cade10b81d6034fdd2176bef32bdbf9 Το patch-set είναι διαθέσιμο στη διεύθυνση: Η τελευταία αυτή διαδικασία που μόλις είδαμε (η μεταγλώττιση του native jdk) θα πάρει αρκετό χρόνο. Εγκατάσταση του Jakarta Tomcat Περίληψη Η Java γίνεται σταδιακά όλο και πιο δημοφιλής για τη δημιουργία ποικίλων και επιδεχόμενων κλιμάκωσης, ανεξαρτήτων από πλατφόρμα λύσεων. Μια από τις πιο έντονα αυξανόμενες ανάγκες της Java βρίσκεται στον τομέα του ASP (Application Service Provider). Η Java προσφέρεται σαν η τέλεια λύση σε τέτοιου είδους αγορές έχοντας τα ακόλουθα προτερήματα: Ανεξαρτησία πλατφόρμας Αφοσίωση στα υπάρχοντα πρότυπα Μεγάλη δυνατότητα κλιμάκωσης Συνέπεια στην απόδοση Κατανεμημένες, πολυνηματικές, ασφαλείς κτλ. εφαρμογές Μια πολύ σημαντική και αναπτυσσόμενη τεχνολογία που αναδύθηκε μέσα από την Java είναι η JSP (JavaServer Pages). Οι JSP (JavaServer Pages) είναι μια server-side τεχνολογία που παρουσιάστηκε από την Sun Microsystems Corp., και παρέχει ένα γρήγορο και απλό τρόπο για την παραγωγή δυναμικού περιεχομένου μέσα από HTML σελίδες. Χρησιμοποιεί XML tags μαζί με Java scriptlets για να ενσωματώσει και να διαχωρίσει έτσι τη λογική από τον αισθητικό σχεδιασμό και εμφάνιση. Όταν καλείται μια JSP σελίδα, μετατρέπεται δυναμικά σε ένα Servlet το οποίο επεξεργάζεται από τον server για να παραχθεί η τελική HTML/XML σελίδα που θα δεί ο client. Όταν η JSP τεχνολογία χρησιμοποιείται σε συνδυασμό με την τεχνολογία JavaBeans, είναι δυνατό να παραχθούν ποικιλόμορφες και επιδεχόμενες μεγάλης κλιμάκωσης εφαρμογές, οι οποίες μπορούν να συνδυαστούν με την δύναμη και την απόδοση του FreeBSD. Ο Tomcat είναι μια open-source εφαρμογή των προδιαγραφών των τεχνολογιών Java Servlets και JavaServer Pages, που αναπτύσσεται κάτω από από το Jakarta project στο Apache Software Foundation. Ο Tomcat εφαρμόζει ένα νέο Servlet framework (ονομαζόμενο Catalina) που στηρίζεται επάνω σε μια εντελώς νέα αρχιτεκτονική με βάση τις Servlet 2.3 and JSP 1.2 προδιαγραφές. Περιλαμβάνει πολλές νέες δυνατότητες που τον ανάγουν σε μια χρήσιμη πλατφόρμα για την δημιουργία αλλά και ανάπτυξη εφαρμογών αλλά και υπηρεσιών web. Με λίγα λόγια, ο Tomcat είναι ένας διακομιστής εφαρμογών γραμμένος σε 100% καθαρή Java. Ο Tomcat χρησιμοποιείται για πολλούς σκοπούς, και δεν περιορίζεται μόνο στη χρήση του ως διακομιστής εφαρμογών. Παρέχει μια ανοιχτή πλατφόρμα για την δημιουργία επεκτάσιμων υπηρεσιών web αλλά και υπηρεσιών content management. Η χρήση του Tomcat σε συνδυασμό με ένα βελτιστοποιημένο FreeBSD σύστημα, μπορεί να παρέχει πολύ συνεπείς αλλά και υψηλών ρυθμών εξυπηρέτησης υπηρεσίες. Παρακαλώ ανατρέξτε στη λίστα με τις για περισσότερες πληροφορίες σχετικά με τον Tomcat και την JSP τεχνολογία. Παρακάτω θα δούμε πως μπορείτε να εγκαταστήσετε το Περιβάλλον Tomcat στο FreeBSD. Η έκδοση του Tomcat που χρησιμοποιείται στον οδηγό αυτό είναι η 4.0.3. Στην έκδοση αυτή περιέχονται μεγάλα bug fixes, αλλά και οι ακόλουθες ανανεώσεις/αλλαγές: Υλοποίηση προδιαγραφών του JSP 1.2 Υλοποίηση προδιαγραφών του Java Servlet 2.3 Πλήρης συμβατότητα με τις παλαιότερες Java Servlet 2.2 και JSP 1.1 προδιαγραφές Το περιβάλλον Tomcat για το FreeBSD Η εγκατάσταση του Tomcat στο FreeBSD είναι πολύ εύκολη εφόσον έχει στηθεί πρώτα το απαραίτητο περιβάλλον Java, κάτι που έχουμε ήδη κάνει. Για να εγκαταστήσετε τον Tomcat στο FreeBSD, ακολουθήστε τα παρακάτω βήματα: Ακολουθήστε τα παρακάτω βήματα για την εγκατάσταση του απαραίτητου περιβάλλοντος Java. Δηλώστε τη μεταβλητή περιβάλλοντος JAVA_HOME η οποία, θα πρέπει να δείχνει στο φάκελο όπου έχετε εγκαταστήσει το JDK (το παρακάτω παράδειγμα δείχνει σε ένα native build του JDK για C κέλυφος): &prompt.root; setenv JAVA_HOME /usr/local/jdk1.3.1 Αυτή η μεταβλητή περιβάλλοντος θα πρέπει να γίνει μόνιμη με την προσθήκη της παραπάνω εντολής είτε στο .profile είτε στο .cshrc, ανάλογα με το ποιό κέλυφος χρησιμοποιείτε. Η μεταβλητή αυτή είναι πολύ σημαντική για τη λειτουργία των Java βασισμένων προγραμμάτων, όπως και του ίδιου του Tomcat. Κατεβάστε την binary διανομή του Tomcat από το Jakarta website, που θα βρείτε στη διεύθυνση . Το αρχείο που θα πρέπει να κατεβάσετε λέγεται jakarta-tomcat-4.0.3.tar.gz. Το συμπιεσμένο και αρχειοθετημένο αρχείο που κατεβάσαμε στο προηγούμενο βήμα χρησιμοποιεί ειδικές GNU Extensions. Για να το κάνετε untar και να το αποσυμπιέσετε θα πρέπει να εγκαταστήσετε το πακέτο GNU Tar (archivers/gtar), κάνοντας τα ακόλουθα: &prompt.root; cd /usr/ports/archivers/gtar && make all install clean Κάντε untar και αποσυμπιέστε το αρχείο jakarta-tomcat-4.0.3.tar.gz μέσα στο φάκελο /usr/local και μετονομάστε τον παραγόμενο υποφάκελο σε tomcat-4.0 για εύκολη αναφορά: &prompt.root; cd /usr/local &prompt.root; gtar zxvf jakarta-tomcat-4.0.3.tar.gz &prompt.root; ls jakarta* jakarta-tomcat-4.0.3 &prompt.root; mv jakarta-tomcat-4.0.3 tomcat-4.0 Μπορείτε πλέον να σβήσετε το αρχείο jakarta-tomcat-4.0.3.tar.gz αν το επιθυμείτε. Η εγκατάσταση χρησιμοποιώντας τον πηγαίο κώδικα είναι προς το παρόν εκτός της εμβέλειας του τρέχοντος κειμένου. Παρακαλώ, ανατρέξτε στα ακόλουθα αρχεία για περαιτέρω πληροφορίες όσον αφορά την μεταγλώττιση από τον πηγαίο κώδικα. Τα αρχεία αυτά είναι διαθέσιμα στον φάκελο διανομής του Tomcat: /usr/local/tomcat-4.0/README.txt /usr/local/tomcat-4.0/BUILDING.txt Λειτουργία του Tomcat - Βασικές Πληροφορίες Έχουμε πλέον τελειώσει με την εγκατάσταση του Tomcat. Το ακόλουθο παράδειγμα δείχνει πως να ξεκινήσετε τον Tomcat server: &prompt.root; cd /usr/local/tomcat-4.0/bin &prompt.root; ./startup.sh (για να ξεκινήσετε τον Tomcat) Μπορείτε να δοκιμάσετε αν έχει ξεκινήσει ο Tomcat server επισκεπτόμενοι το ακόλουθο URL: http://127.0.0.1:8080 ή http://localhost:8080. Για να σταματήσετε τον Tomcat κάντε τα ακόλουθα: &prompt.root; cd /usr/local/tomcat-4.0/bin &prompt.root; ./shutdown.sh Τα startup.sh και shutdown.sh είναι frontends του catalina.sh εκτελέσιμου script στον ίδιο φάκελο: Αν θέλετε να ξεκινάει ο Tomcat αυτόματα κατά την εκκίνηση εκτελέστε τα ακόλουθα: &prompt.root; cd /usr/local/etc/rc.d &prompt.root; ln -s /usr/local/tomcat-4.0/bin/catalina.sh Διορθώστε το catalina.sh, και προσθέστε τα ακόλουθα στην αρχή του αρχείου (μετά από το κουτί με τα σχόλια): JAVA_HOME=/usr/local/jdk1.3.1 Αν η θύρα 8080 είναι απασχολημένη από κάποια άλλη υπηρεσία, μπορείτε να την αλλάξετε διορθώνοντας το αρχείο server.xml που βρίσκεται στον υποφάκελο conf/ του Tomcat. Στο παρακάτω παράδειγμα, η θύρα θα αλλαχθεί στην 80, θεωρώντας ότι δεν υπάρχει κάποια άλλη υπηρεσία που χρησιμοποιεί τη θύρα αυτή. &prompt.root; cd /usr/local/tomcat-4.0/conf &prompt.root; fgrep -n 8080 server.xml ~65: By default, a non-SSL HTTP/1.1 Connector is established on port 8080. ~89: port="8080" minProcessors="5" maxProcessors="75" &prompt.root; cat server.xml | sed s/8080/80/ > server.xml.new &prompt.root; mv server.xml.new server.xml Αναφορές The FreeBSD Java Project JavaSoft. Home of Java The Sun Community Source Licensing for Java Jakarta Tomcat Homepage J2SE Documentation FreeBSD Ports - Java Section Συμπεράσματα Φτάνοντας στο τέλος αυτού του άρθρου έχουμε μια λειτουργική έκδοση του Tomcat. Ελπίζουμε ότι μάθατε τα βασικά στάδια που χρειάζονται για τη μεταγλώττιση και εγκατάσταση του Java Development Kit στο FreeBSD, καθώς και για την εγκατάσταση του Tomcat binary distribution application server που έχει εκδοθεί από το Apache Software Foundation. Η λίστα με τις περιέχει δείκτες σε επιπρόσθετες πηγές πληροφορίας επάνω στα θέματα αυτά, κάποιες από τις οποίες βρίσκονται σε έντυπη μορφή, άλλες στον παγκόσμιο ιστό ή και στα δύο. Το πιο σημαντικό θέμα είναι να υπάρχει χώρος στο σύστημα. Προτείνω να έχετε 700 MB ή περισσότερα ελεύθερο χώρο στο φάκελο /usr. Ελπίζω το άρθρο αυτό να σας βοήθησε κατά ένα μικρό τρόπο. Ερωτήσεις, σχόλια ή συγχαρητήρια μπορείτε να στέλνετε στη διεύθυνση Victoria Chan.