Προγραμματισμός

Τι είναι το Tomcat; Το αρχικό δοχείο servlet Java

Το Apache Tomcat είναι ένα μακροπρόθεσμο, ανοιχτού κώδικα κοντέινερ Java που εφαρμόζει αρκετές βασικές εταιρικές προδιαγραφές Java, συγκεκριμένα τα Java Servlet, JavaServer Pages (JSP) και WebSockets API.

Ένα έργο Apache Software Foundation, το Tomcat κυκλοφόρησε για πρώτη φορά το 1998, μόλις τέσσερα χρόνια μετά την ίδια την Java. Το Tomcat ξεκίνησε ως εφαρμογή αναφοράς για το πρώτο Java Servlet API και τις προδιαγραφές JSP. Αν και δεν είναι πλέον η εφαρμογή αναφοράς για καμία από αυτές τις τεχνολογίες, το Tomcat παραμένει ο πιο διαδεδομένος διακομιστής Java, με έναν καλά δοκιμασμένο και αποδεδειγμένο πυρήνα κινητήρα με καλή δυνατότητα επέκτασης.

Σε αυτήν τη σύντομη εισαγωγή, θα μάθετε γιατί πολλά καταστήματα λογισμικού επιλέγουν το Tomcat για την εκτέλεση εφαρμογών ιστού Java. Θα λάβετε μια επισκόπηση του Tomcat και του τρόπου χρήσης του, καθώς και οδηγίες εγκατάστασης για την πιο πρόσφατη έκδοση αυτής της γραφής.

Το Tomcat και το Java Servlet API

Το Tomcat 9 υποστηρίζει τις προδιαγραφές Servlet 4.0 και απαιτεί JDK 8 ή μεγαλύτερη. Το Tomcat 8.5 υποστηρίζει πολλά νεότερα χαρακτηριστικά όπως το HTTP / 2, αλλά παραμένει ένα κοντέινερ Servlet 3.

Τι είδους διακομιστής είναι ο Tomcat;

Το οικοσύστημα Java υποστηρίζει διάφορα είδη διακομιστή εφαρμογών, οπότε ας τα ξεκαθαρίσουμε και ας δούμε πού χωράει το Tomcat:

  • ΕΝΑ δοχείο servlet είναι μια εφαρμογή της προδιαγραφής Java Servlet, που χρησιμοποιείται κυρίως για τη φιλοξενία servlet Java.
  • ΕΝΑ διακομιστής ιστού είναι ένας διακομιστής σχεδιασμένος να εξυπηρετεί αρχεία από το τοπικό σύστημα, όπως το Apache.
  • ΕΝΑ Διακομιστής εφαρμογών Java Enterprise είναι μια πλήρης εφαρμογή των προδιαγραφών Java EE (τώρα Jakarta EE).

Στην καρδιά, το Tomcat είναι ένα δοχείο servlet και JSP. Ένας διακομιστής Java ενσωματώνει κώδικα και επιχειρηματική λογική και καθορίζει τον τρόπο χειρισμού αιτημάτων και απαντήσεων σε διακομιστή Java. Το JSP είναι μια τεχνολογία απόδοσης από την πλευρά του διακομιστή. Ως προγραμματιστής, γράφετε τη σελίδα servlet ή JSP και, στη συνέχεια, αφήστε τον Tomcat να χειριστεί τη δρομολόγηση.

Το Tomcat περιέχει επίσης τον κινητήρα Coyote, ο οποίος είναι διακομιστής διαδικτύου. Χάρη στο Coyote, είναι δυνατή η επέκταση του Tomcat ώστε να περιλαμβάνει μια ποικιλία προδιαγραφών και δυνατοτήτων εταιρικής Java, συμπεριλαμβανομένου του Java Persistence API (JPA). Το Tomcat έχει επίσης μια εκτεταμένη έκδοση, που ονομάζεται TomEE, η οποία περιλαμβάνει περισσότερες επιχειρηματικές δυνατότητες. Θα παρουσιάσω σύντομα το TomEE σε αυτό το άρθρο.

Ας ξεκινήσουμε με μια ματιά στη χρήση του Tomcat για να φιλοξενήσουμε servlets και JSP.

Πραγματοποιήστε λήψη και εγκατάσταση του Tomcat

Όντας φοβερός αρχαίος στον κόσμο του λογισμικού, διατίθενται πολλές εκδόσεις Tomcat. Πληροφορίες σχετικά με τις διαφορές έκδοσης είναι διαθέσιμες στην αρχική σελίδα του Tomcat. Συνήθως μπορείτε απλά να επιλέξετε την πιο πρόσφατη σταθερή έκδοση.

Για τους σκοπούς μας, κατεβάστε την τελευταία έκδοση του Tomcat, η οποία είναι σήμερα το Tomcat 9. Έχετε την επιλογή να κατεβάσετε το Tomcat ως αρχείο (.φερμουάρ ή tar.gzή ως εγκατεστημένη υπηρεσία. Η καλύτερη επιλογή εξαρτάται από εσάς - εκτός αν φυσικά δεν χρησιμοποιείτε Windows, οπότε θα πάτε για το αρχείο. Θα χρησιμοποιήσουμε το αρχείο για αυτό το άρθρο.

Εγκατάσταση Windows για το Tomcat

Εάν χρησιμοποιείτε Windows και θέλετε να χρησιμοποιήσετε το πρόγραμμα εγκατάστασης, απλώς κατεβάστε το αρχείο .exe και εκτελέστε το. Η Tomcat θα εγκατασταθεί ως υπηρεσία με λογικές προεπιλογές. Στη συνέχεια θα σας ενημερώσει για το πού βρίσκεται η εγκατάσταση και μπορείτε να προχωρήσετε σαν να έχετε αποσυμπιέσει το αρχείο εκεί.

Βήμα 1. Εγκατάσταση γραμμής εντολών

Μεταβείτε στη γραμμή εντολών και πληκτρολογήστε gunzip apache-tomcat-9.0.19.tar.gz ακολουθούμενη από tar -xf apache-tomcat-9.0.19.tar. Αυτό δημιουργεί τους ακόλουθους καταλόγους:

  • /αποθήκη περιέχει τα σενάρια για την εκτέλεση του Tomcat.
  • / webapps είναι η τοποθεσία όπου θα αναπτύξετε τις εφαρμογές σας.
  • / αρχεία καταγραφής είναι όπου το Tomcat εξάγει τα αρχεία καταγραφής του. Σημειώστε ότι τα αρχεία καταγραφής του Tomcat μπαίνουν /logs/catalina.out από προεπιλογή. Μπορείτε να χρησιμοποιήσετε αυτό το αρχείο για να εντοπίσετε προβλήματα σε συνδυασμό με αρχεία καταγραφής συγκεκριμένων εφαρμογών.
  • / lib είναι όπου ο Tomcat αναζητά JAR. Εδώ θα αποθηκεύσετε επιπλέον πακέτα που δεν περιλαμβάνονται στο Tomcat, όπως το JPA.
  • / μεταφ είναι η διαμόρφωση XML για Tomcat, όπου μπορείτε να κάνετε πράγματα όπως προσθήκη χρηστών και ρόλων για το Tomcat.

Βήμα 2. Ξεκινήστε το Tomcat

Εάν εγκαταστήσατε το Tomcat ως υπηρεσία, εκτελείται ήδη. Διαφορετικά, προχωρήστε και ξεκινήστε το εισάγοντας ./catalina.sh έναρξη στη γραμμή εντολών. (Τύπος ./catalina.sh χωρίς ορίσματα για να δείτε όλες τις διαθέσιμες εντολές). Τώρα, θα πρέπει να μπορείτε να περιηγηθείτε στην οθόνη καλωσορίσματος του Tomcat σε ένα πρόγραμμα περιήγησης.

Μάθιου Τάισον

Ανάπτυξη εφαρμογών στο Tomcat

Τομκάτ διαδικτυακές εφαρμογές Ο κατάλογος είναι όπου αναπτύσσετε μια εφαρμογή. Μπορείτε να ρίξετε ένα .πόλεμος αρχείο εκεί και ο Tomcat θα το τρέξει. Ένα αρχείο WAR είναι η τυπική συσκευασία για έναν πόρο εφαρμογών ιστού: ένα αρχείο JAR με ορισμένα πρόσθετα αρχεία που λέει στον περιέκτη (σε αυτήν την περίπτωση Tomcat) πώς να το εκτελέσει.

Εκτός από την τυπική συσκευασία, υπάρχουν τρεις επιπλέον τρόποι ανάπτυξης περιεχομένου στο Tomcat.

Έκρηξη ανάπτυξης

Μια "εκρηκτική" εφαρμογή ιστού είναι μια εφαρμογή που δεν συμπιέζεται σε ένα αρχείο WAR, που σημαίνει ότι εξακολουθεί να περιέχει όλα τα στοιχεία που παρατίθενται σε καταλόγους και αρχεία. Το αρχείο Tomcat που αποσυσκευάσατε αποστέλλεται με διάφορα παραδείγματα που έχουν αναπτυχθεί με αυτόν τον τρόπο, τα οποία θα βρείτε στο / webapps / παραδείγματα Ευρετήριο. Το πλεονέκτημα μιας ανεπτυγμένης ανάπτυξης είναι ότι μπορείτε να δείτε τα αρχεία εκεί χωρίς να ανησυχείτε για συμπίεση.

Εάν πλοηγηθείτε στο // localhost: 8080 / παραδείγματα /, θα βρείτε μια λίστα συνδέσμων. Αυτή η σελίδα εκδίδεται από τον Tomcat από το /webapps/examples/index.html αρχείο. Η Tomcat εξυπηρετεί ένα αρχείο HTML από το σύστημα αρχείων, το οποίο είναι μια παρουσία του κινητήρα Tomcat Coyote που λειτουργεί ως διακομιστής Ιστού.

Είστε ελεύθεροι να εξερευνήσετε τα παραδείγματα που παρουσιάζονται - σας δίνουν μια καλή επισκόπηση των δυνατοτήτων του Tomcat για εξυπηρέτηση servlets, JSP και WebSockets.

Το Tomcat περιλαμβάνει επίσης μια εφαρμογή διαχείρισης από προεπιλογή, που βρίσκεται κάτω από το /διευθυντής μονοπάτι. Μεταξύ άλλων, αυτή η εφαρμογή σάς επιτρέπει να ξεκινήσετε, να σταματήσετε και να επανατοποθετήσετε εφαρμογές από μια κονσόλα ιστού.

Προβολή στατικού περιεχομένου

Είναι δυνατή η εξυπηρέτηση αρχείων από το σύστημα αρχείων ή η προώθηση από το Tomcat σε άλλο διακομιστή HTTP όπως το Apache. Μια άλλη κοινή ρύθμιση είναι να τοποθετήσετε έναν διακομιστή αρχείων όπως το Apache ή το Nginx μπροστά από το Tomcat και, στη συνέχεια, να προωθήσετε τα αιτήματά σας API στο Tomcat. Σε αυτές τις περιπτώσεις, η βιβλιοθήκη mod_JK χρησιμοποιείται για τη ρύθμιση παραμέτρων του Tomcat και του Apache (ή ακόμα και ενός άλλου διακομιστή ιστού όπως τα IIS) για επικοινωνία.

Για βελτιωμένη απόδοση, κυρίως στην παροχή στατικού περιεχομένου, η Tomcat προσφέρει επίσης εγγενή περιτυλίγματα για Windows και Linux. Αυτό είναι γνωστό ως Tomcat Απρίλιο και περισσότερες πληροφορίες είναι διαθέσιμες εδώ. Αυτά δεν είναι απαραίτητα για τυπικές περιπτώσεις χρήσης, αλλά πρέπει να γνωρίζετε.

Ενσωματωμένο Tomcat

Για μεγάλο χρονικό διάστημα, η Jetty ήταν ο μόνος διακομιστής που μπορούσε να λειτουργήσει ως ενσωματωμένος διακομιστής. Αυτό έχει αλλάξει και τώρα ο Tomcat μπορεί επίσης να τρέξει ενσωματωμένο. Η ιδέα της χρήσης ενός ενσωματωμένου διακομιστή είναι ότι αντί του διακομιστή που περιέχει τα αρχεία εφαρμογών, όπως έχετε δει μέχρι τώρα, έχετε μια εφαρμογή με μια κύρια τάξη (δηλαδή, μια αυτόνομη εφαρμογή Java), η οποία επικαλείται τις δυνατότητες του διακομιστή από εντός της βάσης κώδικα. Συνολικά, αυτό προσφέρει ένα πιο απλό και φορητό μοντέλο ανάπτυξης και έχει γίνει γρήγορα ο κανόνας. Το Spring Boot, για παράδειγμα, χρησιμοποιεί μια ενσωματωμένη παρουσία Tomcat που εκτελείται σε λειτουργία dev.

Η εκτέλεση ενός ενσωματωμένου διακομιστή μπορεί να καθαρίσει την απλότητα ως προς τις λειτουργίες, καθώς τώρα ασχολείστε με ένα μόνο στοιχείο (την εφαρμογή) αντί να ασχολείστε με την εφαρμογή και την ανάπτυξη διακομιστή. Από την άλλη πλευρά, η ρύθμιση όπου το Tomcat λειτουργεί ως ανεξάρτητος κεντρικός υπολογιστής είναι ακόμα πολύ συνηθισμένη.

Τομέ

Μπορείτε να χρησιμοποιήσετε περισσότερες από τις τυπικές δυνατότητες Java EE (ή Jakarta EE) με το Tomcat προσθέτοντας αυτές τις βιβλιοθήκες στο ίδιο το Tomcat ή στις εξαρτήσεις της εφαρμογής σας. Μια άλλη επιλογή είναι ο διακομιστής TomEE. Το TomEE είναι η ίδια μηχανή Tomcat με πρόσθετη υποστήριξη Java για επιχειρήσεις, συμπεριλαμβανομένων των δημοφιλών API JPA και CDI (Contexts and Dependency Injection). Η προδιαγραφή του TomEE βασίζεται στο προφίλ web Java EE, οπότε σας δίνει περισσότερα από το Tomcat αλλά δεν είναι ένας πλήρης διακομιστής εφαρμογών Java EE όπως το WildFly ή το Glassfish

Υψηλή διαθεσιμότητα και ομαδοποίηση

Το Tomcat υποστηρίζει υψηλή διαθεσιμότητα και ομαδοποίηση. Η υψηλή διαθεσιμότητα είναι ουσιαστικά η ικανότητα να αποτυχία σε μια άλλη παρουσία του διακομιστή και δημιουργήστε ξανά τη συνεδρία σαν να μην είχε πάει στραβά. Το Clustering είναι η δυνατότητα δημιουργίας πολλαπλών εκδόσεων του ίδιου διακομιστή για τη διαχείριση της κυκλοφορίας μεγάλου όγκου.

συμπέρασμα

Το Tomcat παραμένει ενεργά ανεπτυγμένο, συμβαδίζοντας με τις αλλαγές και παρέχει μια σταθερή και αξιόπιστη πλατφόρμα για την ανάπτυξη εφαρμογών ιστού. Τόσο η συνεχιζόμενη δημοτικότητά του όσο και η επιλογή ως προεπιλεγμένη πλατφόρμα Java για πολλά συστήματα PaaS μαρτυρούν τη συνεχή επιτυχία της.

Αυτή η ιστορία, "Τι είναι το Tomcat; Το αρχικό κοντέινερ Java servlet" δημοσιεύθηκε αρχικά από την JavaWorld.