Bom dia a todos.
Estou tendo problemas em codificar minha classe para retornar a conexão pelo Pool do Tomcat 6.
Configurei o context.xml, web.xml tudo certinho. Consigo acessar minha base de dados pelo exemplo abaixo:
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<sql:query var="rs" dataSource="jdbc/ConexaoIntercambio">
select per_codigo_perfil, per_descricao from int_perfis
</sql:query>
<html>
<head>
<title>DB Test</title>
</head>
<body>
<h2>Results</h2>
<c:forEach var="row" items="${rs.rows}">
Foo ${row.PER_CODIGO_PERFIL}<br/>
Bar ${row.PER_DESCRICAO}<br/>
</c:forEach>
</body>
</html>
Mas não consigo acessar pelo seguinte código:
package conexao;
import java.sql.SQLException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import oracle.jdbc.driver.OracleConnection;
import sun.jdbc.odbc.ee.DataSource;
public class Conexao {
public static void main(String[] args) throws NamingException, SQLException {
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env/");
DataSource ds = (DataSource)envContext.lookup("jdbc/ConexaoIntercambio");
OracleConnection conexao = (OracleConnection) ds.getConnection();
}
}
A exception ocorre na linha
Context envContext = (Context)initContext.lookup("java:/comp/env/");
Exception:
Exception in thread "main" javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.lookup(Unknown Source)
at conexao.Conexao.main(Conexao.java:22)
Alguma dica?