Muy buenas señores, os comento el problema que tengo. Estoy haciendo un proyecto con jsp, ya tengo instalado y funcionando correctamente el jdbc para mysql, las variables de entorno son todas las correctas, por lo que he leido, tal vez el error fuese del tools.jar, por lo que tb lo he incluido en la carpeta common/lib del apache y en la carpeta carpeta lib del jre.
Tengo dos clases, Cartografia.java y Consulta.java. En laa de cartografia, todos los atributos con sus getter y setters y en la de consulta la llamada al jdbc y la select correspondiente. Os la pongo aqui para que le veais.
Cartografia.java
Código PHP:
package pruebas;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.util.Date;
import java.util.concurrent.Executor;
import com.sun.net.httpserver.HttpContext;
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpServer;
public class Cartografia
{
String signatura;
String escala;
String signaturaDelOriginal;
String lugarGeografico1;
String titulo;
String datosMatematicos;
String pieDeImprenta;
Date fecha;
String versionOriginal;
String materia;
String lugarGeografico2;
String autorPersonal;
String autorCorporativo;
String imagenBN;
String imagenColor;
public String getSignatura() {
return signatura;
}
public void setSignatura(String signatura) {
this.signatura = signatura;
}
public String getEscala() {
return escala;
}
public void setEscala(String escala) {
this.escala = escala;
}
public String getSignaturaDelOriginal() {
return signaturaDelOriginal;
}
public void setSignaturaDelOriginal(String signaturaDelOriginal) {
this.signaturaDelOriginal = signaturaDelOriginal;
}
public String getLugarGeografico1() {
return lugarGeografico1;
}
public void setLugarGeografico1(String lugarGeografico1) {
this.lugarGeografico1 = lugarGeografico1;
}
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
public String getDatosMatematicos() {
return datosMatematicos;
}
public void setDatosMatematicos(String datosMatematicos) {
this.datosMatematicos = datosMatematicos;
}
public String getPieDeImprenta() {
return pieDeImprenta;
}
public void setPieDeImprenta(String pieDeImprenta) {
this.pieDeImprenta = pieDeImprenta;
}
public Date getFecha() {
return fecha;
}
public void setFecha(Date date) {
this.fecha = date;
}
public String getVersionOriginal() {
return versionOriginal;
}
public void setVersionOriginal(String versionOriginal) {
this.versionOriginal = versionOriginal;
}
public String getMateria() {
return materia;
}
public void setMateria(String materia) {
this.materia = materia;
}
public String getLugarGeografico2() {
return lugarGeografico2;
}
public void setLugarGeografico2(String lugarGeografico2) {
this.lugarGeografico2 = lugarGeografico2;
}
public String getAutorPersonal() {
return autorPersonal;
}
public void setAutorPersonal(String autorPersonal) {
this.autorPersonal = autorPersonal;
}
public String getAutorCorporativo() {
return autorCorporativo;
}
public void setAutorCorporativo(String autorCorporativo) {
this.autorCorporativo = autorCorporativo;
}
public String getImagenBN() {
return imagenBN;
}
public void setImagenBN(String imagenBN) {
this.imagenBN = imagenBN;
}
public String getImagenColor() {
return imagenColor;
}
public void setImagenColor(String imagenColor) {
this.imagenColor = imagenColor;
}
}
Consulta.java
Código PHP:
package pruebas;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.LinkedList;
import pruebas.Cartografia;
public class Consulta {
public static LinkedList<Cartografia> getCartografias() {
LinkedList<Cartografia> listaCartografia=new LinkedList<Cartografia>();
try
{
Class.forName("org.gjt.mm.mysql.Driver");
Connection conexion;
conexion=DriverManager.getConnection("jdbc:mysql://localhost/Cartografia", "root", "********");
Statement st = conexion.createStatement();
ResultSet rs = st.executeQuery("select * from Cartografia" );
while (rs.next())
{
Cartografia cartografia = new Cartografia();
cartografia.setSignatura(rs.getString("signatura"));
cartografia.setEscala(rs.getString("escala"));
cartografia.setSignaturaDelOriginal(rs.getString("signaturaDelOriginal"));
cartografia.setLugarGeografico1(rs.getString("lugarGeografico1"));
cartografia.setTitulo(rs.getString("titulo"));
cartografia.setDatosMatematicos(rs.getString("datosMatematicos"));
cartografia.setPieDeImprenta(rs.getString("pieDeImprenta"));
cartografia.setFecha(rs.getDate("fecha"));
cartografia.setVersionOriginal(rs.getString("versionOriginal"));
cartografia.setMateria(rs.getString("materia"));
cartografia.setLugarGeografico2(rs.getString("lugarGeografico2"));
cartografia.setAutorPersonal(rs.getString("autorPersonal"));
cartografia.setAutorCorporativo(rs.getString("autorCorporativo"));
cartografia.setImagenBN(rs.getString("imagenBN"));
cartografia.setImagenColor(rs.getString("imagenColor"));
listaCartografia.add(cartografia);
}
rs.close();
st.close();
conexion.close();
}
catch (Exception e)
{
e.printStackTrace();
}
return listaCartografia;
}
}
Por último, tengo el fichero Cartografia.jsp
Código PHP:
<!-- Los import -->
<%@ page language="java"%>
<%@ page import="pruebas.*" %>
<%@ page import = "java.util.LinkedList"%>
<html>
<body>
<h1>Consulta a base de datos</h1>
<table border="1">
<tr>
<td>Signatura</td>
<td>Escala</td>
<td>Signatura del Original</td>
<td>Lugar Geográfico</td>
<td></td>
<td></td>
<td></td>
</tr>
<%
LinkedList<Cartografia> listaResultados = Consulta.getCartografias();
for (int i=0;i<listaResultados.size();i++)
{
out.println("<tr>");
out.println("<td>"+listaResultados.get(i).getSignatura()+"</td>");
out.println("<td>"+listaResultados.get(i).getEscala()+"</td>");
out.println("<td>"+listaResultados.get(i).getSignaturaDelOriginal()+"</td>");
out.println("<td>"+listaResultados.get(i).getLugarGeografico1()+"</td>");
out.println("</tr>");
}
%>
</table>
</body>
</html>>
El error que me da es el siguiente:
org.apache.jasper.JasperException: No se puede compilar la clase para JSP:
JSP FileName:/src/main/resources/jsp/Cartografia.jsp
Java FileName:/C:/Program Files/Java/apache-tomcat/work/Catalina/localhost/Pruebajsp//org/apache/jsp/src/main/resources/jsp\Cartografia_jsp.java
Ha tenido lugar un error en la línea: 20 en el archivo jsp: /src/main/resources/jsp/Cartografia.jsp
Cartografia cannot be resolved to a type
17: <td></td>
18: </tr>
19: <%
20: LinkedList<Cartografia> listaResultados = Consulta.getCartografias();
21: for (int i=0;i<listaResultados.size();i++)
22: {
23: out.println("<tr>");
JSP FileName:/src/main/resources/jsp/Cartografia.jsp
Java FileName:/C:/Program Files/Java/apache-tomcat/work/Catalina/localhost/Pruebajsp//org/apache/jsp/src/main/resources/jsp\Cartografia_jsp.java
Ha tenido lugar un error en la línea: 20 en el archivo jsp: /src/main/resources/jsp/Cartografia.jsp
Consulta cannot be resolved
17: <td></td>
18: </tr>
19: <%
20: LinkedList<Cartografia> listaResultados = Consulta.getCartografias();
21: for (int i=0;i<listaResultados.size();i++)
22: {
23: out.println("<tr>");
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.jav acError(DefaultErrorHandler.java:98)
org.apache.jasper.compiler.ErrorDispatcher.javacEr ror(ErrorDispatcher.java:330)
org.apache.jasper.compiler.JDTCompiler.generateCla ss(JDTCompiler.java:435)
org.apache.jasper.compiler.Compiler.compile(Compil er.java:298)
org.apache.jasper.compiler.Compiler.compile(Compil er.java:277)
org.apache.jasper.compiler.Compiler.compile(Compil er.java:265)
org.apache.jasper.JspCompilationContext.compile(Js pCompilationContext.java:564)
org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:302)
org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet .java:803)
No entiendo porque me dice
Cartografia cannot be resolved to a type y
Consulta cannot be resolved si en el .jsp tiene el import correspondiente (pruebas.*) siendo pruebas el paquete donde se encuentran las dos clases java.
Espero vuestra ayuda.
Un saludo.