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

    AIUTO il deployment della mia servlet non funziona perchè????!!!!

    Buonasera, ho integrato correttamente apache tomca 7 in eclipse kepler, ma la mia semplice servlet HelloWorldServlet non funziona!

    Ecco lo script della classe:

    codice:
    package pkgFirstServlet;
    
    import java.io.*; 
    import javax.servlet.*; 
    import javax.servlet.http.*; 
    
    public class HelloWorldServlet extends HttpServlet { 
        private static final long serialVersionUID = 1L;
         
        public void doGet(HttpServletRequest request, HttpServletResponse response) 
                throws IOException, ServletException {
            response.setContentType("text/html; charset=ISO-8859-1"); 
            PrintWriter out = response.getWriter(); 
            out.println("<html>"); 
            out.println("<body>"); 
            out.println("<h1>Hello world, I'm a servlet!</h1>"); 
            out.println("</body>"); 
            out.println("</html>");
            } 
        }

    La web.xml è la seguente:

    codice:
    <?xmlversion = "1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE web-app
    PUBLIC "-//SunMicrosystems,Inc.//DTDWebApplication2.2//EN"
    "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
    <web-app>
    
    <servlet> 
    <servlet-name>HelloWorldServlet</servlet-name>
    <servlet-class>pkgFirstServlet</servlet-class>
    </servlet>
    <servlet-mapping> 
    <servlet-name>HelloWorldServlet</servlet-name>
    <url-pattern>/HelloWorldServlet</url-pattern>
    </servlet-mapping>
    </web-app>

    Ho anch un form html per invocare la servlet:

    codice:
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="ISO-8859-1">
    <title>Servlet di prova</title>
    </head>
    <body>
       <form action="FirstServlet/HelloWolrdServlet" method="get">
          <input type="submit" value="Premi" />
       </form>
    </body>
    </html>

    Quando però faccio run on server mi esce la scritta:
    HTTP Status 404 - /FirstServlet/


    type Status report
    message /FirstServlet/
    description The requested resource is not available.

    Qual è il problema! Le ho provate tutte ma niente! Aiutatemi per favore!!!!!!!!!!!!!! ;( ;( ;(
    Ultima modifica di LeleFT; 27-03-2014 a 13:49 Motivo: Aggiunti i tag CODE

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da raffaele.longo Visualizza il messaggio
    codice:
    <servlet-class>pkgFirstServlet</servlet-class>
    Innanzitutto in servlet-class va messo il nome completamente qualificato della classe della servlet.

    <servlet-class>pkgFirstServlet.HelloWorldServlet</servlet-class>

    E nota: <servlet-name> non è il nome della classe! Può essere qualunque cosa, purché poi i due <servlet-name> (di <servlet> e <servlet-mapping>) corrispondano ... perché è così che l'url viene associato/mappato indirettamente alla Servlet.

    Quote Originariamente inviata da raffaele.longo Visualizza il messaggio
    codice:
    <servlet-mapping> 
    <servlet-name>HelloWorldServlet</servlet-name>
    <url-pattern>/HelloWorldServlet</url-pattern>
    </servlet-mapping>
    Questo è corretto. Tieni però presente che il / iniziale nel url-pattern è relativo alla context-root .... non al server-root.
    Il URL assoluto della servlet è quindi qualcosa tipo:

    http://dominio:porta/tuaContextRoot/HelloWorldServlet

    Quote Originariamente inviata da raffaele.longo Visualizza il messaggio
    codice:
       <form action="FirstServlet/HelloWolrdServlet" method="get">
    FirstServlet è la tua context-root? La tua pagina è sicuramente nella context-root o più sotto, quindi "FirstServlet" come l'hai messo sembrerebbe una sottodirectory.

    Se FirstServlet è la tua context-root, puoi mettere il URL relativo al server-root, ovvero:

    <form action="/FirstServlet/HelloWolrdServlet" method="get">
    (tra l'altro è scritto male)

    Se non lo è .... descrivi meglio! (quale è la tua context-root? dove è la pagina web?)
    Ultima modifica di andbin; 27-03-2014 a 00:30
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Innanzitutto in servlet-class va messo il nome completamente qualificato della classe della servlet.

    <servlet-class>pkgFirstServlet.HelloWorldServlet</servlet-class>
    QUESTO FATTO!!!!!!!!!!!!

    Questo è corretto. Tieni però presente che il / iniziale nel url-pattern è relativo alla context-root .... non al server-root.
    Il URL assoluto della servlet è quindi qualcosa tipo:

    http://dominio:porta/tuaContextRoot/HelloWorldServlet

    HO MESSO http://localhost:8080/FirstServlet/s...loWorldServlet MA NON FUNGE LO STESSO!

    COMUNQUE SI FirstServlet è la context-root

    Se FirstServlet è la tua context-root, puoi mettere il URL relativo al server-root, ovvero:

    <form action="/FirstServlet/HelloWolrdServlet" method="get">
    (tra l'altro è scritto male GRAZIE PER LA CORREZIONE!)

    AD OGNI MODO, PER PRMIA COSA GRAZIE MILLE PER LA RISPOSTA COMUNQUE NON FUNZIONA NEMMENO COSì! QUINDI QUALE PUò ESSERE IL PROBLEMA? DA QUALCHE PARTE HO LETTO CHE L'INDEX.HTML E IL WEB.XML DEVONO STARE FUORI DA WEB-INF è VERO?
    Ultima modifica di LeleFT; 27-03-2014 a 13:57 Motivo: Sistemati i quote

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Prima di tutto: evita di scrivere tutto in maiuscolo e quota correttamente le parti in risposta.

    Per quanto riguarda l'indirizzo, il link che hai postato è:

    http://localhost:8080/FirstServlet/servlet/pkgFirstServlet.HelloWorldServlet

    che non è affatto come ti ho detto io. Questo modo di invocare la servlet ovvero con /contextroot/servlet/full.class.name è il "vecchio" modo che si poteva usare con i vecchi Tomcat dove era abilitato il Invoker Servlet. E spesso lo trovi ancora citato in vecchi libri/siti.
    Con i Tomcat più recenti, questo di default mi pare non sia più possibile. Quindi evita di usare questo modo e sfrutta la mappatura delle servlet come ti ho detto.

    Inoltre web.xml deve stare in WEB-INF. Mentre invece qualunque cosa (html, css, js ....) che deve essere accessibile direttamente dal client può stare ovunque sotto la context-root, eccetto sotto WEB-INF (il servlet container proibisce l'accesso diretto sotto WEB-INF da request esterne).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Allora innanzi tutto ti chiedo scusa per due motivi, 1 perchè non ho mai scritto su un forum e quindi non so come si quota e 2 perchè non ho mai usato java e qiundi non ci sto capendo niente, finendo probabilmente col farti domande stupide! Ad ogni modo, adesso ho messo l'url nella forma che dicevi tu, ossia http://localhost:8080/FirstServlet/HelloWorldServlet, dove FirstServlet è la mia context root, ma niente non gira lo stesso!

    codice:
    <servlet> 
    <servlet-name>HelloWorldServlet</servlet-name>
    <servlet-class>pkgFirstServlet.Helloworld</servlet-class>
    </servlet>
    <servlet-mapping> 
    <servlet-name>HelloWorldServlet</servlet-name>
    <url-pattern>http://localhost:8080/FirstServlet/HelloWorldServlet</url-pattern>
    </servlet-mapping>
    </web-app>

    Tra l'altro se vado nella cartella di Tomcat, vedo che è stata creata la cartella wtpwebapps (che è il deploy path che vedo sulle opzioni del server di eclipse)/FirstServlet (la mia context root)/ e dentro ci stanno due cartelle web-inf (con a sua volta dentro classes,lib e web), metta-inf e il file index.html. Però dopo il run on server continua a uscire:

    HTTP Status 404 - /FirstServlet/
    --------------------------------------------------------------------------------
    type Status report
    message /FirstServlet/
    description The requested resource is not available.
    Ultima modifica di LeleFT; 27-03-2014 a 13:52 Motivo: Aggiunti i tag CODE

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da raffaele.longo Visualizza il messaggio
    non ho mai usato java e qiundi non ci sto capendo niente
    Scusa ma ..... non hai mai usato Java e .... ti "lanci" a tutta birra in web application server side con Java Enterprise??

    Quote Originariamente inviata da raffaele.longo Visualizza il messaggio
    ma niente non gira lo stesso!
    Purtroppo senza vedere esattamente come hai configurato e strutturato il tutto: Eclipse, Tomcat, il progetto, i sorgenti, ecc.... è abbastanza difficile capire cosa non va.
    Il mio consiglio, onestamente, che posso darti (a parte il fatto che per arrivare a queste cose ci vogliono "un po'" di basi su Java) è di cercare in rete qualche guida/tutorial aggiornata e valida che spieghi come iniziare una webapp semplicemente con Eclipse+Tomcat senza altri particolari tools o framework specifici.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    è quello che ho fatto, ma nonostante faccia pari pari come dicono le guide, i servlet non funzionano!
    Comunque ti ringrazio, sei stato gentilissimo, quindi secondo te dovrebbe essere un problema di configurazione tra eclipse e tomcat?

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    In questa discussione avevo aiutato un altro utente riguardo proprio Eclipse+Tomcat. Prova a leggerla, in particolare dal mio post marcato #10.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    In effetti sto notando che, nonostante il server tomcat sia acceso su eclipse (ho fatto start) quando sul web browser scrivo http://localhost:8080/, mi esce l'errore Firefox non può stabilire una connessione con il server localhost:8080.

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da raffaele.longo Visualizza il messaggio
    In effetti sto notando che, nonostante il server tomcat sia acceso su eclipse (ho fatto start) quando sul web browser scrivo http://localhost:8080/, mi esce l'errore Firefox non può stabilire una connessione con il server localhost:8080.
    Un conto è se Firefox mostra la pagina "Unable to connect / Firefox can't establish a connection to the server at xxxx" il che significa che effettivamente non ha raggiunto proprio alcun server.
    Ma se host/porta sono giusti e il server viene raggiunto, l'errore più facile è sbagliare qualcosa nel path ma a quel punto il server (Tomcat) dovrebbe rispondere con una sua pagina che indica HTTP Status 404 ovvero il classico "page not found".
    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.