[Resolvido]Conexão - Jsp - Firebird - Onde está o erro?

Alô, pessoal! Já estou me desesperando com esse problema. Meu objetivo é fazer uma conexão banco de dados com jsp. Já fiz vários erp’s em java usando o firebird, funciona tudo bem. Aí eu queria fazer essa conexão no jsp - bd com o firebird e não estou conseguindo. Esse código abaixo é só um teste de conexão, que, funcionando tudo bem, aí eu implemento a aplicacao que tenho em mente.

<%@ page language=“java” contentType=“text/html; charset=ISO-8859-1”
pageEncoding=“ISO-8859-1”%>

<%@ page import=“java.sql." %>
<%@ page import="javax.swing.
” %>
<%@ page import=“java.io.*” %>

JSP

<% try {

final String URL = “jdbc:firebirdsql:localhost/3050:C:\DB\prim_db.fdb”;
final String usr = “sysdba”;
final String psw = “masterkey”;

		 Class.forName( "org.firebirdsql.jdbc.FBDriver" );
		 
		 final Connection connection = DriverManager.getConnection( URL,usr,psw );  
		 final String conexao = "conectado ao banco com sucesso.";
		 final Statement statement = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, 
	   	         ResultSet.CONCUR_UPDATABLE);
		 final String query = "SELECT cod FROM prod WHERE descricao = " + coxinha + "";			
		 final ResultSet rs = statement.executeQuery(query); 
			  
			if(rs.next())
		      {                      
		         String cod = rs.getString("cod");
		      }
         }
          catch(Exception ex)
         { 
              JOptionPane.showMessageDialog(
                     null, "Erro processando o BD " + ex.getMessage(), 
                     "Erro", JOptionPane.PLAIN_MESSAGE );
         }
	 %>   
<tr>
<td></td>
<td></td>
</tr> 

Mas nesse teste, olha a mensagem que vem.

e Exception Report

Message Unable to compile class for JSP:

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception

org.apache.jasper.JasperException: Unable to compile class for JSP:

An error occurred at line: [33] in the jsp file: [/Context_2/Carrinho1.jsp]
coxinha cannot be resolved to a variable

30: final String conexao = “conectado ao banco com sucesso.”;
31: final Statement statement = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
32: ResultSet.CONCUR_UPDATABLE);

33: final String query = "SELECT cod FROM prod WHERE descricao = " + coxinha + “”;

34: final ResultSet rs = statement.executeQuery(query);
35:
36: if(rs.next())

Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:103)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:392)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:594)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:400)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:370)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:354)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:660)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:400)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

Onde estou errando, ou se alguem tiver um exemplo pronto dessa conexao, posta aí, pra eu ver onde é o problema, por favor.
Obrigado.

Eae Francisco blza, então verificando aqui, a conexão esta funcionando mas o que parece esta pegando é a sua variavel coxinha que não esta podendo ser convertido… verifica na linha 33 final String query = "SELECT cod FROM prod WHERE descricao = " + coxinha + “”; se esta faltando algo uma aspa talvez… verifica se a váriavel coxinha esta declarada e inicializada… espero ter ajudado

Alô Marcelo_Freitas1, voltei. Estava tentando ver onde era o problema depois de sua observação.
Modifiquei a linha da query que ficou assim:

final String query = “SELECT cod FROM prod WHERE descricao = ’ + coxinha + '”;

Coloquei aspas simples e o problema agora mudou. veja a msg de erro:

texto em itálicoType Exception Report

Message An exception occurred processing [/Context_2/Carrinho1.jsp] at line [28]

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception

org.apache.jasper.JasperException: An exception occurred processing [/Context_2/Carrinho1.jsp] at line [28]

25: final String usr = “sysdba”;
26: final String psw = “masterkey”;
**27: **
28: Class.forName( “org.firebirdsql.jdbc.FBDriver” );
**29: **
**30: final Connection connection = DriverManager.getConnection( URL,usr,psw ); **
31: final String conexao = “conectado ao banco com sucesso.”;

Stacktrace:
** org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:618)**
** org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:500)**
** org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)**
** org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)**
** javax.servlet.http.HttpServlet.service(HttpServlet.java:728)**
** org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)**

Root Cause

javax.servlet.ServletException: java.lang.ClassNotFoundException: org.firebirdsql.jdbc.FBDriver
** org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:917)**
** org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:846)**
** org.apache.jsp.Context_005f2.Carrinho1_jsp._jspService(Carrinho1_jsp.java:158)**
** org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:71)**
** javax.servlet.http.HttpServlet.service(HttpServlet.java:728)**
** org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:477)**
** org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)**
** org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)**
** javax.servlet.http.HttpServlet.service(HttpServlet.java:728)**
** org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)**

Root Cause

java.lang.ClassNotFoundException: org.firebirdsql.jdbc.FBDriver
** org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1952)**
** org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1795)**
** org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:126)**
** org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:63)**
** java.lang.Class.forName0(Native Method)**
** java.lang.Class.forName(Unknown Source)**
** org.apache.jsp.Context_005f2.Carrinho1_jsp._jspService(Carrinho1_jsp.java:111)**
** org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:71)**
** javax.servlet.http.HttpServlet.service(HttpServlet.java:728)**
** org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:477)**
** org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)**
** org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)**
** javax.servlet.http.HttpServlet.service(HttpServlet.java:728)**
** org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)**

Eu já tinha visto em alguns posts que essa mensagem diz que não foi encontrado driver de conexão com o banco, no caso o jaybird.
Clicando com o segundo botão do mouse, no projeto, no Eclipse, Build Path, Configure Build Path, em Libraries, para não dar erro coloquei tres jaybirds com versões diferentes,.
jaybird-full-3.0.9.jar, jaybird-full-2.1.1.jar, e jaybird-full-4.0.1.jar
Tem alguma coisa faltando, ou errada nisso?
No banco de teste que fiz, no IExpert,.
alterei os tipos e coloquei tudo varchar, pra ver se desaparece o erro.
Alguem aí pode me dar uma luz?
Obrigado

Não esta encontrando a classe ** 28: Class.forName( “org.firebirdsql.jdbc.FBDriver” ); talvez nesses jars não o tenha e verifica qual é a melhor versão para o seu projeto por que ter mais de uma versão do mesmo jar não é uma boa.

Olá, Marcelo_Freitas1, obrigado pela atenção ao meu problema. O que contatei:
1 - abri todos os .jar que eu tinha anexado e todos contêm a classe FBDriver.
2 - como eu uso o JDK 10.0.2 eu coloquei o jaybird-full-4.0.1.java11.
3 - mudei o select, que era

"SELECT cod FROM prod WHERE descricao = ’ + coxinha + '";
( coloquei aspas simples, não deu êrro mas não retornou dados do banco), para

"SELECT * FROM prod";

e aí consegui recuperar os dados do bd; minha conclusão: preciso descobrir o êrro no primeiro ‘select’.
(Desculpem, estava escrevendo e a pagina subiu sem eu concluir, aí eu apaguei e tornei a escrever)

Que bom que deu certo :slight_smile:

Até a próxima

Valeu Marcelo. Obrigado mesmo. Até!..