Problemi con mysql

di il
3 risposte

Problemi con mysql

Buongiorno, sto scrivendo una web app che utilizza un db mysql per accedere ai dati dei film (è una specie di sito/gestionale per multisale). Fino all'altro giorno andava tutto liscio e poi Non capisco dove sia l'errore. Vi posto l'eccezione che viene lanciata e la classe la lancia. Ho fin pensato di aver cambiato per errore la password di root di mysql ma non è quello

Questo l'errore:
HTTP Status 500 - An exception occurred processing JSP page /moduli/film/vediFilm.jsp at line 11

type Exception report

message An exception occurred processing JSP page /moduli/film/vediFilm.jsp at line 11

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

exception

org.apache.jasper.JasperException: An exception occurred processing JSP page /moduli/film/vediFilm.jsp at line 11

8:     	<div id="barra_titolo_fo"><h1>Film in Programmazione</h1></div>
9:     	<%
10:     	String queryFilm = "SELECT id, titolo, durata, dataInizio, genere, attivo FROM film WHERE storico = 0 AND cancellato = 0 AND attivo = 1 AND dataInizio <= '"+Calendario.oggi()+"' ORDER BY dataInizio ASC";
11: 		ResultSet rsFilm = Database.eseguiQuery(queryFilm);
12: 		
13: 		while(rsFilm != null && rsFilm.next())
14: 		{


Stacktrace:
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:584)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:481)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause

java.lang.NullPointerException
	packClassi.Database.eseguiQuery(Database.java:23)
	org.apache.jsp.moduli.film.vediFilm_jsp._jspService(vediFilm_jsp.java:373)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)



Qui la classe database.java
package packClassi;

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Database {
	
	public static java.sql.Connection connessione;
	public static Statement statement;
	
	public Database()
	{
	}
	
	public static ResultSet eseguiQuery(String query)
	{
		connetti();
		
		ResultSet rs = null; // risultato della query
		try {
			statement = connessione.createStatement();
			rs = statement.executeQuery(query);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		}
		return rs;
	}
	
	public static boolean eseguiUpdate (String query)
	{
		connetti();
		int risultato =0;
		try {
			statement = connessione.createStatement();
			risultato = statement.executeUpdate(query);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return false;
		}
		if(risultato>0)
			return true;
		else
			return false;
	}
	
	public static int eseguiUpdateInt (String query)
	{
		connetti();
		int risultato =0;
		try {
			statement = connessione.createStatement();
			risultato = statement.executeUpdate(query);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return -1;
		}
		
		return risultato;
	}
	
	private static void connetti()
	{
		try {
			Class.forName("com.mysql.jdbc.Driver").newInstance();
		} catch (InstantiationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		try {
			connessione = DriverManager.getConnection("jdbc:mysql://localhost/multisala", "root", "");
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	public static void disconnetti()
	{
		try {
			statement.close();
			connessione.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
Qualche idea? Sono quantomeno disperato...

3 Risposte

  • Re: Problemi con mysql

    Il problema NON E' MySQL
    Hai un NullPointerException, alla riga 23.

    Dovrebbe essere la variabile statica 'connessione' che non e' inizializata.
    Nella fase di inizializzazione, in caso di eccezzione, tu semplicemente stampi su console il callstack e le info sull'eccezzione.

    Devi analizzare che cosa succede LI.
  • Re: Problemi con mysql

    Sto dando un occhio a mysql perché ho il presentimento che sia sempre li l'errore. Fino all'altro giorno funzionava tutto liscio come l'olio e poi dev'essere successo qualcosa. Ora faccio per fermare mysql da command line e al riavvio mi da degli errori strani:
    MacBook-Pro-di-simone:~ simone$  sudo /usr/local/mysql/support-files/mysql.server start
    Starting MySQL
    ..................................................................................................... ERROR! The server quit without updating PID file (/usr/local/mysql/data/MacBook-Pro-di-simone.local.pid).
    MacBook-Pro-di-simone:~ simone$ /usr/local/mysql/support-files/mysql.server restart
     ERROR! MySQL server PID file could not be found!
    Starting MySQL
    ./usr/local/mysql/bin/mysqld_safe: line 548: /usr/local/mysql/data/mysqld_safe.pid: Permission denied
    awk: i/o error occurred while closing /dev/stdout
     input record number 1, file 
     source line number 1
    touch: /usr/local/mysql/data/MacBook-Pro-di-simone.local.err: Permission denied
    /usr/local/mysql/bin/mysqld_safe: line 135: /usr/local/mysql/data/MacBook-Pro-di-simone.local.err: Permission denied
    /usr/local/mysql/bin/mysqld_safe: line 169: /usr/local/mysql/data/MacBook-Pro-di-simone.local.err: Permission denied
    /usr/local/mysql/bin/mysqld_safe: line 135: /usr/local/mysql/data/MacBook-Pro-di-simone.local.err: Permission denied
     ERROR! The server quit without updating PID file (/usr/local/mysql/data/MacBook-Pro-di-simone.local.pid).
    
  • Re: Problemi con mysql

    migliorabile ha scritto:


    Il problema NON E' MySQL
    Hai un NullPointerException, alla riga 23.

    Dovrebbe essere la variabile statica 'connessione' che non e' inizializata.
    Nella fase di inizializzazione, in caso di eccezzione, tu semplicemente stampi su console il callstack e le info sull'eccezzione.

    Devi analizzare che cosa succede LI.
    Beh ma com'è possibile che un giorno funzioni tutto e il giorno dopo, avendo spento solo il laptop mi tiri un'eccezione?
    Come agiresti? Sono ancora abbastanza inesperto, ma vorrei approfondire la cosa... anche perchè è un progettino che mi serve funzionante per domani
Devi accedere o registrarti per scrivere nel forum
3 risposte