Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/07/2009, 19:34
PanchoJ
 
Fecha de Ingreso: abril-2009
Ubicación: Santa Fe, Capital
Mensajes: 38
Antigüedad: 15 años, 10 meses
Puntos: 0
Pregunta Problema con conexion con MySQL

Uso glassfish tengo configurado MySQL(localhost:4848) como

Recursos/JDBC/Conjunto de conexiones/MySQLPool
url: jdbc:mysql://:3306/java

Recursos/JDBC/Recurso JDBC/
Nombre JNDI: jdbc/java
Nombre de conjunto: MySQLPool

Hago un ping y me da correcto.

coneccion a la base de datos

Código:
	private DataSource data;
	private MusicaSQL sql = new MusicaSQL(); 
		
	
	private DataSource getData() {
		if (data == null) {
			try {
				Context ctx = new InitialContext();
				data = (DataSource) ctx.lookup("jdbc/java");
			} catch (NamingException ne) {
				ne.printStackTrace();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		return data;
	}

	public List<Musica> getAllMusica() {
		Connection conn;
		ArrayList<Musica> allMusica = new ArrayList<Musica>();
		try{
			conn = getData().getConnection();
			PreparedStatement ps = conn.prepareStatement(sql.getSELECT_MUSICA_ALL());
			ResultSet rs = ps.executeQuery();
			while(rs.next()){
				Musica musica = new Musica();

				musica.setNombre(rs.getString("NOMBRE"));
				musica.setArtista(rs.getString("ARTISTA"));
				musica.setAlbum(rs.getString("ALBUM"));
				musica.setGenero(rs.getString("GENERO"));
				musica.setDuracion(rs.getInt("DURACION"));
				musica.setAnio(rs.getInt("ANIO"));
				musica.setIdmusica(rs.getInt("ID_MUSICA"));
				allMusica.add(musica);
			}
			rs.close();
			ps.close();
			conn.close();
		}catch(SQLException e){
			System.out.println(e.getMessage());
		}
		return allMusica;
	}

MusicaSQL

Código:
private static final String INSERT_MUSICA = "INSERT INTO musica (NOMBRE, ARTISTA, ALBUM, GENERO, DURACION, ANIO) VALUES (?,?,?,?,?,?)";
	private static final String UPDATE_MUSICA = "UPDATE musica SET NOMBRE=?, ARTISTA=?, ALBUM=?, GENERO=?, DURACION=?, ANIO=? WHERE ID_MUSICA = ?";
	private static final String DELETE_MUSICA = "DELETE FROM musica WHERE ID_MUSICA = ?"; 
	private static final String SELECT_MUSICA_BY_ID = " SELECT NOMBRE, ARTISTA, ALBUM, GENERO, DURACION, ANIO FROM TABLE_IN_JAVA WHERE ID_MUSICA = ? ";
	private static final String SELECT_MUSICA_ALL = "SELECT NOMBRE, ARTISTA, ALBUM, GENERO, DURACION, ANIO, ID_MUSICA FROM TABLE_IN_JAVA";
Servlet que accede a las clases que conectan a la base de datos

Código:
protected void doGet(...)...{
		if (request.getAttribute("musicas").equals("null")){
			request.setAttribute("musicas", new Musica());
		}else{
			request.setAttribute("musicas", music.getAllMusica());
		}
		
		request.getRequestDispatcher("paginas/musica.jsp").forward(request, response);
	}

	protected void doPost(...)...{
		Musica musica = new Musica();
		try{
			//Seteo los valores
			musica.setNombre(request.getParameter("nombre"));
			musica.setArtista(request.getParameter("artista"));
			musica.setAlbum(request.getParameter("album"));
			musica.setGenero(request.getParameter("genero"));
						musica.setDuracion(Integer.parseInt(request.getParameter("duracion")));
			musica.setAnio(Integer.parseInt(request.getParameter("anio")));
			musica.setIdmusica(idmusica);
			
			music.guardarMusica(musica);
			
			//request.setAttribute("id", musica.getIdmusica());
		}catch(Exception e){}
		doGet(request,response);
}
Cuando coloco esto en el metodo doget

Código:
if (request.getAttribute("musicas").equals("null")){
	request.setAttribute("musicas", new Musica());
}else{
	request.setAttribute("musicas", music.getAllMusica());
}
Me muestra

Código:
Estado de HTTP 500 - 
--------------------------------------------------------------------------------
type Informe de excepción

Mensaje

Descripción El servidor encontró un error interno () que impide satisfacer la solicitud.

Excepción java . lang . NullPointerException
Parece que no puedo acceder a la base de datos, porque me muestra null cuando quiero mostrar todas las musicas.