Τεχνολογίες WWW

Ιστολόγιο σχετικό με συνώνυμο μάθημα του Παν. Θεσσαλίας

Deploying a servlet

Πώς δημιουργούμε ένα servlet και που το τοποθετούμε στον Tomcat

  • Τα servlet είναι αρχεία java οπότε σε ένα αρχείο MyServlet.java γράφουμε τον παρακάτω κώδικα:

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class MyServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse rsp) throws ServletException, IOException {
rsp.setContentType("text/html");
PrintWriter out = rsp.getWriter();
out.println("<html>");
out.println("<head><title> Simple Servlet </title></head>");
out.println("<body>"); out.println("<p>This is a simple Servlet!</p>");
out.println("</body></html>");
}
}

  • Κάνουμε compile το παραπάνω αρχείο (επειδή κάναμε import javax.servlet.http.*) πρέπει να ορίσουμε το classpath π.χ. στον javac:
    javac -classpath "/usr/local/apache-tomcat-7.0.22/lib/servlet-api.jar" MyServlet.java
  • έτσι μας δημιουργείται το αρχείο MyServlet.class
  • αυτό το αρχείο θέλουμε να το μεταφέρουμε κάτω από ένα συγκεκριμένο subdirectory του tomcat (/ROOT/WEB-INF/classes) οπότε πληκτρολογούμε:
    sudo mv MyServlet.class /usr/local/apache-tomcat-7.0.22/webapps/ROOT/WEB-INF/classes/
  • πάμε τώρα στο:
    cd /usr/local/apache-tomcat-7.0.22/webapps/ROOT/WEB-INF/
  • εκεί βλέπουμε δύο αρχεία το classes και το web.xml
  • πρέπει να κάνουμε mapping στο web.xml για να τρέξει το servlet.
  • ανοίγουμε το web.xml με έναν editor sudo gedit web.xml

και ανάμεσα από τα <web-app> </web-app> τοποθετούμε τον εξής κώδικα:
<servlet>
<servlet-name> Servlet </servlet-name>
<servlet-class> MyServlet </servlet-class>
</servlet>

<servlet-mapping>
<servlet-name> Servlet </servlet-name>
<url-pattern> /my </url-pattern>
</servlet-mapping>

  • ανοίγουμε τον Tomcat όπως είπαμε /usr/local/apache-tomcat-7.0.22/bin/startup.sh
  • και σε έναν browser γράφουμε την διεύθυνση http://localhost:8080/my
    (θα μας βρει το μήνυμα This is a simple Servlet!)

πηγή: http://www.sitepoint.com/java-servlets-1/

Advertisements

21 responses to “Deploying a servlet

  1. kroumeliot Οκτώβριος 9, 2011 στο 13:48

    Ypaexei ena typografiko sto web.xml oso anafora to
    To swsto einai:

    Servlet
    MyServlet

    Servlet
    /my

  2. kroumeliot Οκτώβριος 9, 2011 στο 13:52

    Epeidi den emfanizetai to xml auto pou ennoousa prin einai oti to servlet name prepei na einai koino kai sto servlet mapping.

  3. kostasa89 Οκτώβριος 9, 2011 στο 14:33

    ναι, αυτό ήταν το λάθος!

  4. anskourt Οκτώβριος 9, 2011 στο 15:06

    kostasa89 de kserw ti kanw lathos.
    to tutorial to akolouthw kata gramma
    kai me ti diorthwsi alla pairnw to parakatw
    (einai mono oi prwtes grammes)

    HTTP Status 500 –

    type Exception report

    message

    description The server encountered an internal error () that prevented it from fulfilling this request.

    • kostasa89 Οκτώβριος 9, 2011 στο 15:58

      κάνε την διόρθωση που είπαμε στο παρακάτω comment πρώτα στο web.xml(διορθώθηκε και στο αρχικό post πλέον).( Πολλές φορές χρειάζεται να κλείσεις και να ξαναξεκινήσεις το Tomcat.κλείσε τον browser κλείσε το Tomcat /usr/local/…bin/shutdown άνοιξε τον tomcat /usr/local/../bin/start και ξαναβάλε το url στον browser.

  5. aea Οκτώβριος 9, 2011 στο 15:14

    exei diorthwthei kati sto tutorial? giati den katalavainw ti lete sta sxolia, kai den leitourgei opws tha eprepe

  6. kostasa89 Οκτώβριος 9, 2011 στο 15:42

    πρέπει να διορθώσεις το εξής:
    εκεί που λέει:
    ανοίγουμε το web.xml με έναν editor sudo gedit web.xml

    και ανάμεσα από τα τοποθετούμε τον εξής κώδικα:

    Servlet
    MyServlet

    MyServlet
    /my

    εκεί που λέει MyServlet
    άλλαξέ το με το Servlet
    (δηλαδή βγάλε το My από μπροστά)

  7. kostasa89 Οκτώβριος 9, 2011 στο 15:50

    δεν εμφανίζεται το web.xml αλλά ελπίζω να αλλαχθεί σε λίγο και το αρχικό Post
    εκεί που υπάρχει servlet-name MyServlet /servlet-name(το γράφω χωρίς τα tag)
    αλλάζουμε το MyServlet σε σκέτο Servlet για να συμβαδίζει με το όνομα που έχουμε δώσει παραπάνω

  8. anskourt Οκτώβριος 9, 2011 στο 16:24

    den ekana aplws restart to tomcat alla olokliro
    to pc. afu tsekara kai to original tutorial apo to link
    pou to pires ki esy mipws kai kati eixe ksefygei,
    alla tpt. ti na pw… tha tsekarw mpas kai leipei kamia vivliothiki

  9. aea Οκτώβριος 9, 2011 στο 16:26

    kanw paste ta errors pou evgale afou ekana ti diorthwsi, kai restart to tomcat

    http://pastebin.com/QnK0baQa

  10. anskourt Οκτώβριος 9, 2011 στο 16:35

    akrivws ta idia kai se mena

  11. marilena Οκτώβριος 12, 2011 στο 23:10

    emena pantws katw ap’to ROOT den mou douleue para mono otan:

    ekana folder me onoma project opws k opou fenetai edw:

    /usr/local/apache-tomcat-7.0.22/webapps/
    project/
    WEB-INF/
    web.xml
    classes/
    MyServlet.class

    kai me url: http://localhost:8080/project/my mou etrekse.

    p.s xreiastike k restart ton Tomcat

    an genika kserei kaneis ti epaikse as pei..

  12. antwnhsdhmtsas Οκτώβριος 17, 2011 στο 17:59

    kai emena de douleuei vgazei ta sfalmata pou eipan ta paidia…

    • antwnhsdhmtsas Οκτώβριος 17, 2011 στο 18:19

      Telika etrexe!Profanws ta paidia allaksan to la8os post kai evalan panw to swsto…egw den to antilif8hka auto kai allaksa to MyServlet se Sevlet…de xreiazetai…autos einai o kwdikas dhladh gia to mapping:

      Servlet
      MyServlet

      Servlet
      /my

  13. Pingback: Homework 2! « WWW Technologies

  14. Pingback: Homework2 « My Blog

  15. kopapaha Οκτώβριος 19, 2011 στο 19:52

    Ίσως σε κάποιους χρειαστεί να δημιουργήσουν έναν φάκελο classes (αν δεν υπάρχει) (mkdir classes) κάτω απο το /usr/local/apache-tomcat-7.0.22/webapps/ROOT/WEB-INF για τη μεταφορά του αρχείου

  16. Pingback: Εργασία 2 « Wanderlust

Σχολιάστε

Εισάγετε τα παρακάτω στοιχεία ή επιλέξτε ένα εικονίδιο για να συνδεθείτε:

Λογότυπο WordPress.com

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό WordPress.com. Αποσύνδεση / Αλλαγή )

Φωτογραφία Twitter

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Twitter. Αποσύνδεση / Αλλαγή )

Φωτογραφία Facebook

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Facebook. Αποσύνδεση / Αλλαγή )

Φωτογραφία Google+

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Google+. Αποσύνδεση / Αλλαγή )

Σύνδεση με %s

Αρέσει σε %d bloggers: