Web com firebird - iniciante [RESOLVIDO]

5 respostas
R

eae galera, blz…
Sou novo com java e estou acompanhando a apostila da Caelum fj21 mas estou tendo problemas para realizar conexao com banco de dados firebird em um projeto web. Em um execicio anterior em que o projeto nao era web realizei a conexao e efetuei transacoes de insercao, consulta, etc no banco de dados normalmente.
Agora no projeto web nos exercicios do item 5.9 nao funciona.
Os exercicios pedem:

1 - importar algumas classes para conexao e transacao com banco de dados.
essas classes para importar sao as do outro projeto que ja funciona mas nao é um projeto web. OK
2 - criar uma pagina html para cadastrar os contatos.
criada a pagina adiciona-contato.html conforme apostila. OK
3 - criar uma servlet para gravar o contato no banco de dados e mapear a servlet no arquivo web.xml.
criada a servlet AdicionaContatoServlet.java e mapeada no arquivo web.xml conforme apostila. OK

Obs: coloquei o arquivo do driver do firebird (“jaybird-full-2.1.6.jar”) na pasta web-inf/lib/ e adicionei no projeto o driver atraves do build path do eclipse e tambem adicionei no class path o endereco do driver web-inf/lib/.

Esta é minha classe que cria a instancia da conexao

public class ConnectionFactory {

public Connection getConnection() throws ClassNotFoundException{

try {

Class.forName(org.firebirdsql.jdbc.FBDriver);

String url = jdbc:firebirdsql:localhost/3050:C:/database/banco.fdb;

Connection conn = DriverManager.getConnection(url, SYSDBA, masterkey);

return conn;

} catch (SQLException e) {

throw new RuntimeException();

}

}

}

ela é chamada no constructor desta classe

public class ContatoDao {

private Connection conexao;

public ContatoDao() {

try {

this.conexao = new ConnectionFactory().getConnection();

} catch (ClassNotFoundException e) {

throw new RuntimeException(e);

}

}

.

.

.

e na servlet eu crio o objeto da classe “ContatoDao”

Na pagina html e ao clicar no botao de gravar vem o seguinte erro:

java.lang.RuntimeException: java.lang.ClassNotFoundException: org.firebirdsql.jdbc.FBDriver

pckServlet.ContatoDao.(ContatoDao.java:18)

pckServlet.AdicionaContatoServlet.service(AdicionaContatoServlet.java:50)

javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

root cause
java.lang.ClassNotFoundException: org.firebirdsql.jdbc.FBDriver

org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)

org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)

java.lang.Class.forName0(Native Method)

java.lang.Class.forName(Unknown Source)

pckServlet.ConnectionFactory.getConnection(ConnectionFactory.java:9)

pckServlet.ContatoDao.(ContatoDao.java:16)

pckServlet.AdicionaContatoServlet.service(AdicionaContatoServlet.java:50)

javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.33 logs.

Alguem sabe oque poderia estar errado???
obrigado.

5 Respostas

R

Quando postar código use as tags CODE, leia como: http://www.guj.com.br/java/50115-vocnovo-no-guj-vai-criar-um-tico-e-colar-seu-cigo-fonte-leia-aqui-antes-por-favor

O erro acontece por que a aplicação não está encontrando o arquivo .jar do driver.
Vai no servidor e confere se o arquivo está la na sua aplicação mesmo, ou então adicione o arquivo na pasta lib do servidor.

R

olá romarcio, desculpe por ter nao ter lido o manual e postado a duvida de maneira errada.

Aparentemente reslovi o problema, antes eu estava colocando o driver “.jar” na pasta lib do servidor e tambem a adicionando no build path do projeto.
Por tentativa eu removi do build path e deixei apenas o arquivo na pasta lib do servidor e funcionou corretamente.

Obrigado pela atencao.

R

rodrigo_porto:
olá romarcio, desculpe por ter nao ter lido o manual e postado a duvida de maneira errada.

Aparentemente reslovi o problema, antes eu estava colocando o driver “.jar” na pasta lib do servidor e tambem a adicionando no build path do projeto.
Por tentativa eu removi do build path e deixei apenas o arquivo na pasta lib do servidor e funcionou corretamente.

Obrigado pela atencao.

Quando você tem o mesmo jar tanto no servidor como na aplicação, acaba dando conflito e o aparece o erro de classe não encontrada.
Geralmente o arquivo jar do drive você pode deixar no servidor, já que varias outras aplicações podem acabar usando ele também.

S

Já que vc está usando Firebird, tenta me dar uma mão aqui: http://www.guj.com.br/java/254006-firebird-pegando-o-id-gerado-via-insert--returning

R

Desculpa Saoj mas axo q nao vou conseguir te ajudar.

Criado 29 de setembro de 2011
Ultima resposta 30 de set. de 2011
Respostas 5
Participantes 3