Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [JAVA] Scrivere una servlet su Eclipse

    Ciao a tutti...volevo chiedervi, sto seguendo la guida:

    http://java.html.it/articoli/leggi/1...e-e-servita/3/

    come vedete, c'è il codice di una servlet.

    Ora vorrei creare il file che contenga questa servlet per poi deployarla su Tomcat. Ho scaricato Eclipse, ma non riesco a capire come devo fare per scriverla...e in che formato salvarla.

    Sapreste dirmi qualcosa in merito?

    Grazie...
    My website: .....:::{[( www.oltrecalcio.com )]}:::.....
    My works: .....:::{[( win.oltrecalcio.com/lavori )]}:::.....

    "PALLA TAGLIATA...MESSA FUORI...C'è PIRLO PIRLO...ANCORA PIRLO...DI TACCO...TIRO... GOOOOOOOOOOOOOOOOOL GRROSOOO GRROSOOO GRROSSOOO GOL DI GROSSOOOOOOOO..."

  2. #2
    Allora...ho eseguito questa esaurientissima guida:

    http://java.html.it/articoli/leggi/2...cazioni-web/1/

    che spiega come creare una applicazione web con eclipse. L'applicazione fa inserire nome, cognome, età, e tramite una jsp risponde con una tabella con il nome, cognome, età inseriti.

    mi trovo con tutto tranne che per il funzionamento finale...Ho fatto il deploy su Tomcat, lancio l'applicazione, mi fa inserire nome cognome età e quando premo su invia mi esce questa schermata:


    HTTP Status 500 -

    --------------------------------------------------------------------------------

    type Exception report

    message

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

    exception

    java.io.FileNotFoundException: .\webapps\MySimpleWebApplication\WEB-INF\etc\users.txt (Impossibile trovare il percorso specificato)
    java.io.FileOutputStream.openAppend(Native Method)
    java.io.FileOutputStream.<init>(Unknown Source)
    java.io.FileOutputStream.<init>(Unknown Source)
    java.io.FileWriter.<init>(Unknown Source)
    dati.UserIO.addItem(UserIO.java:11)
    controller.SimpleController.doGet(SimpleController .java:40)
    javax.servlet.http.HttpServlet.service(HttpServlet .java:690)
    javax.servlet.http.HttpServlet.service(HttpServlet .java:803)


    note The full stack trace of the root cause is available in the Apache Tomcat/6.0.6 logs.

    Cosa vuol dire?

    grazie...
    My website: .....:::{[( www.oltrecalcio.com )]}:::.....
    My works: .....:::{[( win.oltrecalcio.com/lavori )]}:::.....

    "PALLA TAGLIATA...MESSA FUORI...C'è PIRLO PIRLO...ANCORA PIRLO...DI TACCO...TIRO... GOOOOOOOOOOOOOOOOOL GRROSOOO GRROSOOO GRROSSOOO GOL DI GROSSOOOOOOOO..."

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da cristal
    java.io.FileNotFoundException: .\webapps\MySimpleWebApplication\WEB-INF\etc\users.txt (Impossibile trovare il percorso specificato)

    Cosa vuol dire?
    Che evidentemente il path non è appropriato! Nel senso che il path che hai usato è relativo alla directory corrente ma .... quale è la directory corrente?? Non lo sai a priori, dipende dal servlet container/application server!!

    Puoi usare getRealPath() di ServletContext per ottenere un path reale sul file-system locale in base ad un path riferito alla root del tuo contesto.

    Per chiarire, se chiedi il real path di "/WEB-INF/etc/users.txt" puoi ottenere ad esempio "C:\......\tomcat\webapps\nomeTuaApp\WEB-INF\etc\users.txt".

    Nota: non funziona se la applicazione è deployata in un WAR e il servlet container/application server usa direttamente il WAR senza spacchettarlo (generalmente lo spacchettano ... perlomeno Tomcat lo fa per default).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  4. #4
    Originariamente inviato da andbin
    Che evidentemente il path non è appropriato! Nel senso che il path che hai usato è relativo alla directory corrente ma .... quale è la directory corrente?? Non lo sai a priori, dipende dal servlet container/application server!!

    Nota: non funziona se la applicazione è deployata in un WAR e il servlet container/application server usa direttamente il WAR senza spacchettarlo (generalmente lo spacchettano ... perlomeno Tomcat lo fa per default).

    ciao...grazie mille per la risposta.
    Allora, ho inserito manualmente il percorso che è:
    C:\Programmi\Apache Software Foundation\Tomcat 6.0\webapps\MySimpleWebApplication\WEB-INF\etc\users.txt

    tuttavia adesso su eclipse ho proprio una segnalazione di problema:

    Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \\ )

    penso sia dovuto agli spazi....come si può risolvere?


    Puoi usare getRealPath() di ServletContext per ottenere un path reale sul file-system locale in base ad un path riferito alla root del tuo contesto.

    Per chiarire, se chiedi il real path di "/WEB-INF/etc/users.txt" puoi ottenere ad esempio "C:\......\tomcat\webapps\nomeTuaApp\WEB-INF\etc\users.txt".
    Con questo metodo getRealPath() non penso proprio di saperlo fare....

    Nota: non funziona se la applicazione è deployata in un WAR e il servlet container/application server usa direttamente il WAR senza spacchettarlo (generalmente lo spacchettano ... perlomeno Tomcat lo fa per default).
    Uso Tomcat, quindi per questo non ho problemi...

    grazie ancora
    My website: .....:::{[( www.oltrecalcio.com )]}:::.....
    My works: .....:::{[( win.oltrecalcio.com/lavori )]}:::.....

    "PALLA TAGLIATA...MESSA FUORI...C'è PIRLO PIRLO...ANCORA PIRLO...DI TACCO...TIRO... GOOOOOOOOOOOOOOOOOL GRROSOOO GRROSOOO GRROSSOOO GOL DI GROSSOOOOOOOO..."

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da cristal
    ciao...grazie mille per la risposta.
    Allora, ho inserito manualmente il percorso che è:
    C:\Programmi\Apache Software Foundation\Tomcat 6.0\webapps\MySimpleWebApplication\WEB-INF\etc\users.txt

    tuttavia adesso su eclipse ho proprio una segnalazione di problema:

    Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \\ )
    Se scrivi il path come stringa "literal" nel sorgente, il carattere \ è speciale, se vuoi avere davvero il carattere \ devi raddoppiarlo: \\
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  6. #6
    Originariamente inviato da andbin
    Se scrivi il path come stringa "literal" nel sorgente, il carattere \ è speciale, se vuoi avere davvero il carattere \ devi raddoppiarlo: \\
    Perfetto...avevo trovato una guida che diceva questo, ma più mettevo le \\ nel percorso, più mi segnava errore nel path e non sono arrivato fino alla fine...

    ok ora funziona simulando da Eclipse, mentre su Tomcat ho ancora un problema. Dopo aver deployato il file .war, lancio l'applicazione e mi fa inserire nome, cognome, età ma poi premendo su invia mi esce:


    HTTP Status 404 - /MySimpleWebApplication/SimpleController

    type Status report

    message /MySimpleWebApplication/SimpleController

    description The requested resource (/MySimpleWebApplication/SimpleController) is not available.


    Sai da cosa possa dipendere?

    EDIT:
    N.B. Mi viene segnalato questo marker:
    The serializable class SimpleController does not declare a static final serialVersionUID field of type long


    grazie ancora...
    My website: .....:::{[( www.oltrecalcio.com )]}:::.....
    My works: .....:::{[( win.oltrecalcio.com/lavori )]}:::.....

    "PALLA TAGLIATA...MESSA FUORI...C'è PIRLO PIRLO...ANCORA PIRLO...DI TACCO...TIRO... GOOOOOOOOOOOOOOOOOL GRROSOOO GRROSOOO GRROSSOOO GOL DI GROSSOOOOOOOO..."

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da cristal
    HTTP Status 404 - /MySimpleWebApplication/SimpleController

    type Status report

    message /MySimpleWebApplication/SimpleController

    description The requested resource (/MySimpleWebApplication/SimpleController) is not available.


    Sai da cosa possa dipendere?
    Beh ma bisogna vedere a cosa fa riferimento quel SimpleController .... ad una servlet? L'hai dichiarata nel Deployment Descriptor (web.xml)??
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  8. #8
    Originariamente inviato da andbin
    Beh ma bisogna vedere a cosa fa riferimento quel SimpleController .... ad una servlet? L'hai dichiarata nel Deployment Descriptor (web.xml)??
    si è una servlet:

    Codice PHP:
    package controller;

    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpSession;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.RequestDispatcher;
    import business.User;
    import dati.UserIO;

    /**
    * Servlet implementation class for Servlet: SimpleController
    *
    */
    public class SimpleController extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet
    {
      
    /* (non-Java-doc)
       * @see javax.servlet.http.HttpServlet#HttpServlet()
       */
      
    public SimpleController()
      {
        
    super();
      }
      
      
    /* (non-Java-doc)
       * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
       */
      
    protected void doGet(HttpServletRequest requestHttpServletResponse responsethrows ServletExceptionIOException
      
    {
        
    String nome request.getParameter("nome");
        
    String cognome request.getParameter("cognome");
        
    String eta request.getParameter("eta");

        
    User user = new User();
        
    user.setNome(nome);
        
    user.setCognome(cognome);
        
    user.setEta(eta);
        
    // Ricordarsi di creare la directory etc specificata!
        
    UserIO.addItemuser"C:\\Program Files\\Apache Software Foundation\\Tomcat 6.0\\webapps\\MySimpleWebApplication\\WEB-INF\\etc\\users.txt");
        
        
    HttpSession session request.getSession();
        
    session.setAttribute("user"user);
        
        
    RequestDispatcher dispatcher;
        
    dispatcher getServletContext().getRequestDispatcher(
              
    "/ShowUser.jsp");
        
    dispatcher.forward(request,response);

      }
      
      
    /* (non-Java-doc)
       * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
       */
      
    protected void doPost(HttpServletRequest requestHttpServletResponse responsethrows ServletExceptionIOException
      
    {
        
    this.doGet(requestresponse);
      }

    Nel web.xml c'è, penso si sia generata in automatico.
    My website: .....:::{[( www.oltrecalcio.com )]}:::.....
    My works: .....:::{[( win.oltrecalcio.com/lavori )]}:::.....

    "PALLA TAGLIATA...MESSA FUORI...C'è PIRLO PIRLO...ANCORA PIRLO...DI TACCO...TIRO... GOOOOOOOOOOOOOOOOOL GRROSOOO GRROSOOO GRROSSOOO GOL DI GROSSOOOOOOOO..."

  9. #9
    Originariamente inviato da cristal

    EDIT:
    N.B. Mi viene segnalato questo marker:
    The serializable class SimpleController does not declare a static final serialVersionUID field of type long
    Questo l'ho risolto con:
    http://java.sun.com/j2se/1.5.0/docs/...lass.html#4100

    inserendo:
    private static final long serialVersionUID = 3487495895819393L;
    nella servlet SimpleController, nella classe SimpleController.
    My website: .....:::{[( www.oltrecalcio.com )]}:::.....
    My works: .....:::{[( win.oltrecalcio.com/lavori )]}:::.....

    "PALLA TAGLIATA...MESSA FUORI...C'è PIRLO PIRLO...ANCORA PIRLO...DI TACCO...TIRO... GOOOOOOOOOOOOOOOOOL GRROSOOO GRROSOOO GRROSSOOO GOL DI GROSSOOOOOOOO..."

  10. #10
    Allora....funziona tutto anche su Tomcat.

    Non ho fatto altro che sistemare quel marker e creare la cartella etc senza il file dentro users.txt (prima l'avevo creata con il file users.txt dentro e come prima schermata mi compariva già quella con il risultato - uscivano dei NULL - anzichè quella con l'inserimento).

    Giusto per approfondire ho ancora qualche dubbio....

    - come mai funziona senza creare il file users.txt nella cartella etc? Come fa ad autocrearsi?

    - dicevi di usare il metodo getRealPath()....
    sto leggendo qui:
    http://java.sun.com/j2ee/sdk_1.3/tec...ml#getRealPath(java.lang.String)

    ma come posso inserire l'url del file?



    grazie ancora...
    My website: .....:::{[( www.oltrecalcio.com )]}:::.....
    My works: .....:::{[( win.oltrecalcio.com/lavori )]}:::.....

    "PALLA TAGLIATA...MESSA FUORI...C'è PIRLO PIRLO...ANCORA PIRLO...DI TACCO...TIRO... GOOOOOOOOOOOOOOOOOL GRROSOOO GRROSOOO GRROSSOOO GOL DI GROSSOOOOOOOO..."

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 © 2024 vBulletin Solutions, Inc. All rights reserved.