Tudo bem.
Estou tentando adaptar um código em java para JSP.
É até um exemplo do livre do “Java - Como programar”, capítulo 25.
Em java; tudo tranquilo testei o bando de dados, e os resultados da
query foram impressos no console da IDE tranquilamente.
Em JSP; está dando um probleminha em dois trechos do código.
Código:
<html>
<%@page
language="java" import="java.sql.Connection,java.sql.Statement,java.sql.DriverManager,java.sql.ResultSetMetaData
java.sql.ResultSetMetaData,java.sql.SQLException,java.util.*,java.io.*"%>
<%
final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
final String DATABASE_URL = "jdbc:mysql://localhost/books";
Connection connection = null;
Statement statement = null;
try {
Class.forName(JDBC_DRIVER); // carrega classe de driver do banco de
// dados
// estabelece conexão com o banco de dados
connection = DriverManager.getConnection(DATABASE_URL, <usuário>,<senha>);
// cria Statement para consultar banco de dados
statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("SELECT authorID, firstName, lastName FROM authors");
// processa resultados da consulta
ResultSetMetaData metaData = resultSet.getMetaData();
int numberOfColumns = metaData.getColumnCount();
out.println("Authors Table of Books Database:"); %><br>
<%
for (int i = 1; i <= numberOfColumns; i++)
out.println(metaData.getColumnName(i));
%><br>
<%
while (resultSet.next()) {
for (int i = 1; i <= numberOfColumns; i++)
out.println(resultSet.getObject(i));
%><br>
<%
} // fim do while
} // fim do try
catch (SQLException sqlException) {
sqlException.printStackTrace();
System.exit(1);
} // fim do catch
catch (ClassNotFoundException classNotFound) {
classNotFound.printStackTrace();
System.exit(1);
}
finally
{
try {
statement.close();
connection.close();
}
catch (Exception exception) {
exception.printStackTrace();
System.exit(1);
}
}
%>
</html>
Log do erro:
[i]
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Unable to compile class for JSP:
[b]An error occurred at line: 10 in the generated java file
Syntax error on token “java”, delete this token
An error occurred at line: 22 in the jsp file: /index.jsp
ResultSet cannot be resolved to a type[/b]
19: // cria Statement para consultar banco de dados
20: statement = connection.createStatement();
21: ResultSet resultSet = statement.executeQuery(“SELECT authorID, firstName, lastName FROM authors”);
22:
23: // processa resultados da consulta
24: ResultSetMetaData metaData = resultSet.getMetaData();
25: int numberOfColumns = metaData.getColumnCount();
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:423)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:316)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:294)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:281)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
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.16 logs.
[/i]
Não entendi o deu errado. Estou usando o Eclipse(JEE), Apache Tomcate 6.0.16 e MySQL Server 5.1.23.
Eu só queria que fosse impresso no navegar o mesmo que no console do Eclipse.
Alguém tem alguma dica.
Desde já estou grato pela ajuda.