Pessoal,
A classe Conexao.java abaixo é de um projeto em JSP no qual estou dando manutenção.
package br.ufpb.nti.historico.persistence;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
public class Conexao {
protected static DataSource dataSource;
public Conexao() throws Exception {
if (dataSource == null) {
try {
InitialContext ic = new InitialContext();
dataSource = (DataSource) ic.lookup("java:comp/env/jdbc/myoracle");
} catch (NamingException ex) {
System.out.println(ex.getMessage());
throw ex;
}
}
}
public Connection getConnection() throws SQLException {
Connection conn = null;
try {
conn = dataSource.getConnection();
}
catch (SQLException e) {
throw e;
}
return conn;
}
public void closeConnection(
Connection conn,
PreparedStatement stmt,
ResultSet rs) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
}
}
}
}
Quando eu baixo o projeto pelo CVS e tento rodá-lo localmente, a classe acima não consegue estabelecer a conexão.
Eu confesso que nunca utilizei conexão em java utilizando o recurso “DataSource”.
Me parece que o trecho
...
InitialContext ic = new InitialContext();
dataSource = (DataSource) ic.lookup("java:comp/env/jdbc/myoracle");
...
de alguma forma depende do servidor de aplicações remoto, de sorte que, tentando rodar localmente, a conexão não funciona.
Se eu não tiver falado nenhuma besteira, alguém poderia comentar alguma coisa sobre esta “dependência” ?
Agradece,
Max Carvalho