Programmazione servlet con Tomcat

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
Mifert
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 255
Iscrizione: venerdì 18 settembre 2009, 20:41
Desktop: Unity
Distribuzione: Ubuntu 13.04 64 bit

Programmazione servlet con Tomcat

Messaggio da Mifert »

Ho questa servlet:

Codice: Seleziona tutto

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



public class Index extends HttpServlet {
    public void doGet (HttpServletRequest req, HttpServletResponse res) throws IOException {
        Connection con;
        Statement st;
        ResultSet rs1, rs2, rs3;
        String queryAutor,queryReferencia,queryTitulo;
        PrintWriter out;
        
        try {
            Class.forName("com.mysql.jdbc.Driver"); 
        }
        catch(Exception e) {
            System.out.println("Error driver");
            System.exit(0);
        }
        
        
        try {
            con=DriverManager.getConnection("jdbc:mysql://localhost/mydb" , "root" ,"");
            st=con.createStatement();
        
            queryAutor= "SELECT apellido AS Autor FROM autores ORDER BY Autor";
            rs1= st.executeQuery(queryAutor);
            queryReferencia= "SELECT idLibro AS Referencia FROM libros ORDER BY idLibro ASC";
            rs2= st.executeQuery(queryReferencia);
            queryTitulo= "SELECT titulo FROM libros ORDER BY titulo";
            rs3= st.executeQuery(queryTitulo);
        
            out= res.getWriter();
            res.setContentType("text/html");
            
            //out.println("<HTML><BODY>HOOOOOLA</BODY></HTML>");
            
            out.println("<HTML><BODY>Listado libros ordenados por:<BR><form><select>");
            while(rs1.next()) {
                out.println("<option value= \"autor\">" +rs1.getString("Autor")+ "</option>");
            }
            while(rs2.next()) {
                out.println("<option value= \"referencia\">" +rs2.getString("Referencia")+ "</option>");
            }
            while(rs3.next()) {
                out.println("<option value= \"titulo\">" +rs3.getString("Titulo")+ "</option></select><BR><BR>");
            }
            out.println("<input type=\"submit\"></form>");
            
            rs1.close();
            rs2.close();
            rs3.close();
            out.close();
            st.close();
            con.close();
        }
        catch(Exception e) {
            System.out.println("Error");
            System.exit(0);}
    }
}
che però a quanto pare ha qualche problema di connessione al database (credo), dato che quando digito la URL localhost:8080/biblio/Index, non si connette a inoltre genera un errore che disconnette Tomcat
Non smetteremo di esplorare,e alla fine di tutto il nostro andare ritorneremo al punto di partenza per conoscerlo per la prima volta
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: Programmazione servlet con Tomcat

Messaggio da Zoff »

Qual'è l'errore?
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Avatar utente
Mifert
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 255
Iscrizione: venerdì 18 settembre 2009, 20:41
Desktop: Unity
Distribuzione: Ubuntu 13.04 64 bit

Re: Programmazione servlet con Tomcat

Messaggio da Mifert »

Non so quale sia questo errore, so solo che fa stoppare tomcat
Non smetteremo di esplorare,e alla fine di tutto il nostro andare ritorneremo al punto di partenza per conoscerlo per la prima volta
Avatar utente
tomm
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 796
Iscrizione: lunedì 15 ottobre 2007, 10:16
Desktop: Gnome
Distribuzione: Ubuntu 16.04

Re: Programmazione servlet con Tomcat

Messaggio da tomm »

per vedere l'errore devi aggiungere e.printStackTrace() al costrutto try/catch così:

Codice: Seleziona tutto

catch(Exception e) {
            System.out.println("Error");
            e.printStackTrace();
            System.exit(0);
}
Inoltre ti sconsiglio di catchare così indiscriminatamente tutte le exception perché potresti catchare anche errori che non ti aspetti e, se il programma non funziona, non riesci a capire il perché (proprio come adesso). Meglio catchare solo l'eccezione che ti aspetti, ad es, se ti aspetti ClassNotFoundException:

Codice: Seleziona tutto

catch(ClassNotFoundException e)
Re-inoltre, che senso ha usare try/catch se poi usi System.exit? Ti consiglio si togliere System.exit e di rivedere la logica del programma.
Avatar utente
Mifert
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 255
Iscrizione: venerdì 18 settembre 2009, 20:41
Desktop: Unity
Distribuzione: Ubuntu 13.04 64 bit

Re: Programmazione servlet con Tomcat

Messaggio da Mifert »

E dove dovrebbe comparire l'errore con e.printStackTrace() ?
Non smetteremo di esplorare,e alla fine di tutto il nostro andare ritorneremo al punto di partenza per conoscerlo per la prima volta
Avatar utente
tomm
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 796
Iscrizione: lunedì 15 ottobre 2007, 10:16
Desktop: Gnome
Distribuzione: Ubuntu 16.04

Re: Programmazione servlet con Tomcat

Messaggio da tomm »

l'errore lo puoi leggere nel log file. Nella cartella dove è installato il tomcat, vedi il file logs/catalina.out
Altrimenti, se hai installato il pacchetto tomcat6 con apt-get, il log lo trovi in /var/log/tomcat6/catalina.out
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 3 ospiti