Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Non riesco ad installare Tomcat su Windows

    Non riesco ad installare Tomcat su Windows. Ho seguito la procedura guidata esposta sul mio libro ma qualcosa non funziona perché quando scrivo nel browser:

    http://127.0.0.1:8080/examples/servlets/servlet/Esempio

    Ottengo questo messaggio:

    HTTP Status 404 - /examples/servlets/servlet/Esempio


    type Status report
    message /examples/servlets/servlet/Esempio
    description The requested resource is not available.

    Apache Tomcat/7.0.47
    Devo usare la versione 7.0.47 perché il libro spiega come usare questa, ho impostato le seguenti variabili di ambiente di cui non conosco il significato e cosa rappresentano:

    CLASSPATH
    C:\apache-tomcat-7.0.47\lib\servlet-api.jar

    JAVA_HOME
    C:\Program Files\Java\jdk1.7.0_25

    Inoltre se vado in:

    C:\apache-tomcat-7.0.47\webapps\examples\servlets

    non trovo la cratella servlet quindi deduco che Tomcat che a dir la verità sembra avviato non generi la cartella servlet con dentro Esempio e che quindi non funzioni a dovere.

    C'è un sistema per racchiudere tutto il contenuto del mio sito (file html, immagini file .class, file web.xml) in una sola cartella?

    A presto e grazie
    Ultima modifica di giannino1995; 22-12-2013 a 19:16

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da giannino1995 Visualizza il messaggio
    Non riesco ad installare Tomcat su Windows.
    Sul sito di Tomcat ci sono diversi tipi di pacchetti dei binari. Se non hai esigenze precise su Windows (es. installarlo come "servizio" di sistema), la soluzione più veloce è quella di prendere lo zip/tar.gz basilare dei binari.

    apache-tomcat-7.0.47.zip oppure apache-tomcat-7.0.47.tar.gz

    e poi spacchettare in una qualunque directory. Nella cartella bin c'è (per Windows) un startup.bat. Se hai un JDK/JRE in path, Tomcat parte generalmente sempre senza problemi.

    Quote Originariamente inviata da giannino1995 Visualizza il messaggio
    C:\apache-tomcat-7.0.47\webapps\examples\servlets

    non trovo la cratella servlet quindi deduco che Tomcat che a dir la verità sembra avviato non generi la cartella servlet con dentro Esempio e che quindi non funzioni a dovere.

    C'è un sistema per racchiudere tutto il contenuto del mio sito (file html, immagini file .class, file web.xml) in una sola cartella?
    Sai come deve essere strutturata una web application Java? Forse dovresti partire da questi concetti.

    MokaByte Dicembre 2006 - Le applicazioni web e Java
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Ho installato su Ubuntu 13.10 a 64 bit l'ultima versione di Tomcat, precisamente la versione nr. 8 e quando digito nel browser:

    http://localhost:8080/

    leggo:

    If you're seeing this, you've successfully installed Tomcat. Congratulations!
    quindi sono, si fa per dire, a buon punto. Ora devo solo capire come editare questo benedetto file web.xml e dove mettere il file Esempio.class prodotto a parte con Eclipse. Ti spiego quello che ho fatto così riesci a capire dove sbaglio.

    1) Ho aperto Eclipse e ho scritto dentro la classe Esempio questo codice:

    codice:
    import java.io.*; 
    import javax.servlet.*; 
     
    public class Esempio extends GenericServlet { 
     
      public void service(ServletRequest request,  
        ServletResponse response)  
      throws ServletException, IOException { 
        response.setContentType("text/html"); 
        PrintWriter pw = response.getWriter(); 
        pw.println("<B>Hello!"); 
        pw.close(); 
      } 
    }
    Eclipse mi dava degli errori dicendomi che "import javax.servlet" non poteva essere caricato ma sono andato avanti ugualmente e ho creato il .class.

    2) Ho aggiunto prima di </web-app> questo codice:

    codice:
    <servlet>
          <servlet-name>Esempio</servlet-name>
          <servelet-class>Esempio</servelet-class>
        </servlet>
    
    <servlet-mapping>
          <servlet-name>Esempio</servlet-name>
          <url-pattern>/servlet/Esempio</url-pattern>
        </servlet-mapping>
    al file web.xml contenuto in "/home/giannino/TOMCAT/conf"

    3) Ho inserito il file Esempio.class in "/home/giannino/TOMCAT/webapps/examples/WEB-INF/classes"

    4) Ho avviato il terminale e digitato:

    cd /home/giannino/TOMCAT/bin
    ./startup.sh

    Ho seguito quello che mi consigliava il libro ma non c'è stato verso, ottengo l'errore che vedi sopra.



    Ancora qualche aiutino per favore altrimenti non ne esco...

  4. #4
    Nessuna idea?

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da giannino1995 Visualizza il messaggio
    1) Ho aperto Eclipse e ho scritto dentro la classe Esempio questo codice:
    Le classi delle servlet sarebbe meglio se fossero dichiarate in un package.

    Quote Originariamente inviata da giannino1995 Visualizza il messaggio
    Eclipse mi dava degli errori dicendomi che "import javax.servlet"
    Serve il jar della Servlet API.

    Quote Originariamente inviata da giannino1995 Visualizza il messaggio
    al file web.xml contenuto in "/home/giannino/TOMCAT/conf"
    Questo web.xml nella conf di Tomcat non è generalmente da toccare. Sicuramente non nel tuo caso.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    E quindi mi spieghi i passaggi da seguire per provare a far funzionare questa semplice servlet?

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

    public class Esempio extends GenericServlet {

    public void service(ServletRequest request,
    ServletResponse response)
    throws ServletException, IOException {
    response.setContentType("text/html");
    PrintWriter pw = response.getWriter();
    pw.println("<B>Hello!");
    pw.close();
    }
    }
    Il libro non dice nulla di più di quello che ho scritto sopra per vedere l'esempio "Hello!". Un'altra cosa che non capisco è l'approccio alla programmazione. Quando acquisto un hosting java e realizzo un sito web in java devo mettere html e css in una cartella, i file .class in un altra, modificare un web.xml in un'altra ancora? Non è possibile mettere tutti i codici (html, css, java, ecc...) in una sola cartella che posso modificare sul mio pc con Eclipse e caricare in un solo colpo con FileZilla per via ftp? Tu come fai con il tuo sito web? Mi potresti spiegare come provare questi codici sul mio pc? Non riesco a proseguire la lettura di questo manuale altrimenti...

    Ecco altri esempi che vorrei testare...

    codice:
    listing 1
    import java.io.*; 
    import javax.servlet.*; 
     
    public class HelloServlet extends GenericServlet { 
     
      public void service(ServletRequest request,  
        ServletResponse response)  
      throws ServletException, IOException { 
        response.setContentType("text/html"); 
        PrintWriter pw = response.getWriter(); 
        pw.println("<B>Hello!"); 
        pw.close(); 
      } 
    }
    
    listing 2
    <html> 
    <body> 
    <center> 
    <form name="Form1" 
      method="post" 
      action="http://localhost:8080/examples/servlets/servlet/PostParametersServlet"> 
    <table> 
    <tr> 
      <td><B>Employee</td> 
      <td><input type=textbox name="e" size="25" value=""></td> 
    </tr> 
    <tr> 
      <td><B>Phone</td> 
      <td><input type=textbox name="p" size="25" value=""></td> 
    </tr> 
    </table> 
    <input type=submit value="Submit"> 
    </body> 
    </html>
    
    listing 3
    import java.io.*; 
    import java.util.*; 
    import javax.servlet.*; 
     
    public class PostParametersServlet  
    extends GenericServlet { 
     
      public void service(ServletRequest request,  
        ServletResponse response)  
      throws ServletException, IOException { 
     
        // Get print writer. 
        PrintWriter pw = response.getWriter(); 
     
        // Get enumeration of parameter names. 
        Enumeration e = request.getParameterNames(); 
     
        // Display parameter names and values. 
        while(e.hasMoreElements()) { 
          String pname = (String)e.nextElement(); 
          pw.print(pname + " = "); 
          String pvalue = request.getParameter(pname); 
          pw.println(pvalue); 
        } 
        pw.close(); 
      } 
    }
    
    listing 4
    <html> 
    <body> 
    <center> 
    <form name="Form1"  
      action="http://localhost:8080/examples/servlets/servlet/ColorGetServlet"> 
    <B>Color:</B> 
    <select name="color" size="1"> 
    <option value="Red">Red</option> 
    <option value="Green">Green</option> 
    <option value="Blue">Blue</option> 
    </select> 
    <br><br> 
    <input type=submit value="Submit"> 
    </form> 
    </body> 
    </html>
    
    listing 5
    import java.io.*; 
    import javax.servlet.*; 
    import javax.servlet.http.*; 
     
    public class ColorGetServlet extends HttpServlet { 
     
      public void doGet(HttpServletRequest request,  
        HttpServletResponse response)  
      throws ServletException, IOException { 
     
        String color = request.getParameter("color"); 
        response.setContentType("text/html"); 
        PrintWriter pw = response.getWriter(); 
        pw.println("<B>The selected color is:  "); 
        pw.println(color); 
        pw.close(); 
      } 
    }
    
    listing 6
    <html> 
    <body> 
    <center> 
    <form name="Form1"  
      method="post" 
      action="http://localhost:8080/examples/servlets/servlet/ColorPostServlet"> 
    <B>Color:</B> 
    <select name="color" size="1"> 
    <option value="Red">Red</option> 
    <option value="Green">Green</option> 
    <option value="Blue">Blue</option> 
    </select> 
    <br><br> 
    <input type=submit value="Submit"> 
    </form> 
    </body> 
    </html>
    
    listing 7
    import java.io.*; 
    import javax.servlet.*; 
    import javax.servlet.http.*; 
     
    public class ColorPostServlet extends HttpServlet { 
     
      public void doPost(HttpServletRequest request,  
        HttpServletResponse response)  
      throws ServletException, IOException { 
     
        String color = request.getParameter("color"); 
        response.setContentType("text/html"); 
        PrintWriter pw = response.getWriter(); 
        pw.println("<B>The selected color is:  "); 
        pw.println(color); 
        pw.close(); 
      } 
    }
    
    listing 8
    <html> 
    <body> 
    <center> 
    <form name="Form1"  
      method="post" 
      action="http://localhost:8080/examples/servlets/servlet/AddCookieServlet"> 
    <B>Enter a value for MyCookie:</B> 
    <input type=textbox name="data" size=25 value=""> 
    <input type=submit value="Submit"> 
    </form> 
    </body> 
    </html>
    
    listing 9
    import java.io.*; 
    import javax.servlet.*; 
    import javax.servlet.http.*; 
     
    public class AddCookieServlet extends HttpServlet { 
     
      public void doPost(HttpServletRequest request,  
        HttpServletResponse response)  
      throws ServletException, IOException { 
     
        // Get parameter from HTTP request. 
        String data = request.getParameter("data"); 
     
        // Create cookie. 
        Cookie cookie = new Cookie("MyCookie", data); 
     
        // Add cookie to HTTP response. 
        response.addCookie(cookie); 
     
        // Write output to browser. 
        response.setContentType("text/html"); 
        PrintWriter pw = response.getWriter(); 
        pw.println("<B>MyCookie has been set to"); 
        pw.println(data); 
        pw.close(); 
      } 
    }
    
    listing 10
    import java.io.*; 
    import javax.servlet.*; 
    import javax.servlet.http.*; 
     
    public class GetCookiesServlet extends HttpServlet { 
     
      public void doGet(HttpServletRequest request,  
        HttpServletResponse response)  
      throws ServletException, IOException { 
     
        // Get cookies from header of HTTP request. 
        Cookie[] cookies = request.getCookies(); 
     
        // Display these cookies. 
        response.setContentType("text/html"); 
        PrintWriter pw = response.getWriter(); 
        pw.println("<B>"); 
        for(int i = 0; i < cookies.length; i++) { 
          String name = cookies[i].getName(); 
          String value = cookies[i].getValue(); 
          pw.println("name = " + name +  
            "; value = " + value); 
        } 
        pw.close(); 
      } 
    }
    
    listing 11
    import java.io.*; 
    import java.util.*; 
    import javax.servlet.*; 
    import javax.servlet.http.*; 
     
    public class DateServlet extends HttpServlet { 
     
      public void doGet(HttpServletRequest request,  
        HttpServletResponse response)  
      throws ServletException, IOException { 
     
        // Get the HttpSession object. 
        HttpSession hs = request.getSession(true); 
     
        // Get writer. 
        response.setContentType("text/html"); 
        PrintWriter pw = response.getWriter(); 
        pw.print("<B>"); 
     
        // Display date/time of last access. 
        Date date = (Date)hs.getAttribute("date"); 
        if(date != null) { 
          pw.print("Last access: " + date + "<br>"); 
        } 
     
        // Display current date/time. 
        date = new Date(); 
        hs.setAttribute("date", date); 
        pw.println("Current date: " + date); 
      } 
    }

    Fanno tutti parte del mio manuale... Spiegami come faresti tu per provare queste servlet perfavore così io faccio uguale.

    Grazie

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  8. #8
    Molto bene, domani mattima mi metto subito al lavoro. Grazie mille andbin, con un boss come te sarà uno scherzo impratichirmi con le servlet. L'idea di usare Eclipse per fare siti dinamici mi affascina molto.
    A presto

  9. #9
    Ho provato sia con Eclipse che con NetBeans ma non ci sono riuscito, domani riprovo...
    Su Eclipse non mi parte il server su NetBeans invece non capisco dove vengano messe le librerie di Tomcat ma il server virtuale parte al primo colpo... Su Eclipse parte se aggiungo un nuovo server alla lista di server ma quando lo faccio la servlet si riempe di errori...
    domani riprovo... sig... sig...

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Prerequisiti:

    1) JDK 7 (dovrebbe pure funzionare con JDK 6 ma non ho modo di provare ora)

    2) Eclipse IDE for Java EE Developers

    3) Tomcat 7

    Per Tomcat è sufficiente prendere il pacchetto basilare dei binari (es. apache-tomcat-7.0.47.zip), decomprimerlo in una qualunque cartella che si vuole. Non c'è da fare/modificare alcun file di configurazione!

    In Eclipse nella vista "Servers" crea un nuovo server. Seleziona "Tomcat v7.0 Server" e nella schermata successiva imposta come installation directory la "home" della installazione di Tomcat (es. C:\Programmi\apache-tomcat-7.0.47 o qualunque cosa sia sul tuo sistema). Come JRE va bene "Workbench default JRE". Quindi "Finish".

    Sempre in Eclipse crea un nuovo "Dynamic Web Project" (Da File -> New). Metti il nome del progetto che vuoi, Come Target runtime dovrebbe già esserci il Tomcat 7. Come Dynamic web module version puoi mettere 2.4. Se il tuo Eclipse offre versioni successive es. 2.5 o 3.0 potresti anche selezionare una di queste ma poi nel web.xml la dichiarazione iniziale deve essere corretta/coerente.
    L'esempio di web.xml che farò è per 2.4. Le versioni successive permettono di usare funzionalità più avanzate, che però in questo momento non dovrebbero interessarti. Il resto lascialo come predefinito.
    Vai avanti con Next>, nell'ultima pagina c'è il Context root, è il nome della applicazione che poi andrà usato nel URL da browser. Eclipse mette lo stesso nome del progetto, ma puoi cambiarlo se vuoi. Quindi "Finish".

    Nella vista "Package Explorer" sotto src crea un package es. com.esempio, puoi anche cambiare nome purché poi adatti in seguito quello che dirò dopo.
    Dentro il package crea una classe es. HelloServlet, anche qui cambia pure nome, purché adatti nel seguito. Nota che esiste già un wizard apposito per creare una Servlet, puoi usare questo oppure il wizard classico per un Java Class. Non cambia nulla se alla fine arrivi ad avere una cosa del tipo:

    codice:
    package com.esempio;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class HelloServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            PrintWriter out = response.getWriter();
            out.println("<html>");
            out.println("<body>");
            out.println("<h1>Hello Servlet</h1>");
            out.println("</body>");
            out.println("</html>");
        }
    }

    Se hai usato il wizard "Servlet", modifica già lui il web.xml. Alla fin fine è sufficiente avere nel web.xml qualcosa tipo:

    codice:
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
        <display-name>Hello</display-name>
        <servlet>
            <display-name>HelloServlet</display-name>
            <servlet-name>HelloServlet</servlet-name>
            <servlet-class>com.esempio.HelloServlet</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>HelloServlet</servlet-name>
            <url-pattern>/HelloServlet</url-pattern>
        </servlet-mapping>
    </web-app>

    Assicurati che tutto sia compilato (marca es. "Build Automatically" o fai il Build All), comunque verifica poi che non ci siano errori nella vista "Problems".

    Se tutto ok, sul nome del progetto clicca tasto destro, poi Run As -> Run on Server. Seleziona il server (se ne hai solo uno dovrebbe già essere selezionato quello). Quindi "Finish".

    Da browser (IE, FF, quello che vuoi) vai al URL:

    http://localhost:8080/<context-root>/HelloServlet

    dove al posto di <context-root> ci devi mettere il Context root specificato all'inizio nella creazione del progetto. Se il progetto si chiama es. "hello" e hai lasciato "hello" come Context root:

    http://localhost:8080/hello/HelloServlet

    e dovrai vedere la scritta un po' grande "Hello Servlet".
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.