Tomcat e o mistério na conexão com MSAccess

8 respostas
lordExorcist

Estou passando por um problema chatíssimo.
Desenvolvi uma classe java para conexão com bancos de dados.

Ela funciona perfeitamente quando não a uso no tomcat 5.0, o que não ocorre quando trabalho no tomgato.
Eis ela:


[color=“blue”]//Database.java

import java.sql.DriverManager;

import java.sql.Connection;

import java.sql.Statement;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.ResultSetMetaData;

import java.sql.SQLException;
public class Database {

private Connection connection;

private Statement statement;

private PreparedStatement preparedStatement;

private ResultSet resultset;

private ResultSetMetaData rsmd;

private String driver, url, username, password;
public Database(String driver, String url, String username, String password){
  this.driver = driver;
  this.url = url;
  this.username = username;
  this.password = password;
}

[b]
public void connect(){

try{

Class.forName(driver).newInstance();

connection = DriverManager.getConnection(url, username, password);		

statement = connection.createStatement();

}

catch(InstantiationException ie){

System.out.println(iae.getMessage());

}

catch(ClassNotFoundException cnfe){

System.out.println(iae.getMessage());

}

catch(SQLException sqle){

System.out.println(sqle.getMessage());

}

}[/b]

…[/color]

E o método init() do servlet é:

<blockquote>

[color=blue]public void init(){

String driver = sun.jdbc.odbc.JdbcOdbcDriver;

String url = jdbc:odbc:dados;

db = new Database(driver, url, username, password);

db.connect();

}[/color]</blockquote>

Como eu disse, esta conexão funciona num void main(String args[]) comum (retorna resultados tranqüilamente), mas não no Tomcat: a conexão é nula.

Que poutergeist é esse? Existe alguma coisa que se deve configurar no Tomcat para conexão com banco (MSAccess)??

8 Respostas

pcalcado

O driver do Access está ao alcance do Tomcat?

[]s

lordExorcist

“pcalcado”:
O driver do Access está ao alcance do Tomcat?
[]s

Hum… está configurado corretamente em “Fontes de dados (ODBC)”…
O que mais é preciso para o Tomcat reconhecê-lo? :?

F

Uma coisa é ODBC outra é JBDC.

Da um look nos tutoriais da sun sobre jdbc e le com carinho.

lordExorcist

“Flin”:
Uma coisa é ODBC outra é JBDC.

Da um look nos tutoriais da sun sobre jdbc e le com carinho.


Acho que vou ter que ler os tutoriais do Tomcat, pois é nele que a aplicação não roda…
Isto é, a ponte JDBC-ODBC não vale no Tomcat daqui. Fora dele, tudo OK… :cry:

osmarrehbein

Vou tentar resolver

T

Tem jeito de mudar de banco?
É que o MS Access não é muito apropriado para usar com acessos simultâneos (como é o caso de uma simples aplicação do Tomcat).

Baldao

Cara, coloca o Driver JDBC na pasta /WEB-INF/lib da sua aplicação que vai funfá.
Ah, o comentário do thingol é muito válido hein? :wink:

osmarrehbein

[color=darkblue][b]
na verdade existem no odbc 2 tipos de fontes de dados, do usuario e sistema.
O apache ou o JdbcOdbcDriver procura a fonte de dados no sistema e nao na fonte de dados do usuário

a soluçao é criar dsn|driver na aba “Fonte de dados de sistema” do odbc no painel de controle->Ferramentas administrativas->Fonte de dados(ODBC) e nao na aba do usuario!

Osmar Maciel Rehbein.
[email removido]

Criado 17 de outubro de 2004
Ultima resposta 16 de jan. de 2008
Respostas 8
Participantes 6