Agora criei no TOMCAT , DATASORCE
com o nome JNDi igual jdbc/local
mas está me dando erro …não sei mas o que fazer…
---
acao=Lista
idcliente=null
pool
PooLING=java:comp/env/jdbc/local
javax.naming.NameNotFoundException: Name jdbc is not bound in this Context
at org.apache.naming.NamingContext.lookup(NamingContext.java:770)
at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
at org.apache.naming.NamingContext.lookup(NamingContext.java:781)
at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
at org.apache.naming.NamingContext.lookup(NamingContext.java:781)
at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
at org.apache.naming.SelectorContext.lookup(SelectorContext.java:137)
at javax.naming.InitialContext.lookup(Unknown Source)
at br.com.paulo.prova.locator.ServiceLocator.getConnectionByPool(ServiceLocator.java:74)
at br.com.paulo.prova.locator.ServiceLocator.getConnection(ServiceLocator.java:42)
at br.com.paulo.prova.dao.ClienteDAO.listaCliente(ClienteDAO.java:23)
at br.com.paulo.prova.action.ListaAction.execute(ListaAction.java:18)
at br.com.paulo.prova.servlet.ServletAction.service(ServletAction.java:26)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Unknown Source)
////
private static String POOLING_NAME = "java:comp/env/jdbc/local";
private final static String DRIVER_NAME = "com.mysql.jdbc.Driver";
private final static String DB_URL = "jdbc:mysql://localhost:3306/prova";
private final static String DB_USER_NAME = "root";
private final static String DB_PASSWORD = "paribe";
private boolean usePool = true;
private static String DATA_SOURCE = "local";
protected DataSource ds;
static { //Busca o datasource configurado no arquivo resources.application existente em WEB-INF\classes\resources
ResourceBundle prop = ResourceBundle.getBundle("resources.application");
try {
POOLING_NAME = prop.getString("geral.datasource");
} catch (Exception e) {
}
}
private static InitialContext initCtx = null;
private static ServiceLocator instance = new ServiceLocator();
public static ServiceLocator getInstance() {
return instance;
}
public Connection getConnection() throws Exception {
if (usePool) {
System.out.println("pool");
return getConnectionByPool();
} else {
System.out.println("manual");
return getConnectionManual();
}
}
public Connection getConnectionManual() throws Exception {
Connection conn = null;
try {
Class.forName(DRIVER_NAME);
conn=DriverManager.getConnection(DB_URL,DB_USER_NAME,DB_PASSWORD);
System.out.println("Conexão Aberta !!!");
} catch (Exception e) {
System.out.println("Conexão Não Aberta !!!");
e.printStackTrace();
throw new Exception("Erro ao obter conexao via JNDI: " ,e);
}
return conn;
}
public Connection getConnectionByPool() throws Exception {
Connection conn = null;
DataSource ds = null;
try {
if (initCtx == null) {
initCtx = new InitialContext();
}
System.out.println("PooLING="+POOLING_NAME);
ds = (DataSource) initCtx.lookup(POOLING_NAME);
conn = ds.getConnection();
System.out.println("Conexao Aberta");
} catch (Exception e) {
e.printStackTrace();
throw new Exception("Erro ao obter conexao via JNDI: "
+ POOLING_NAME, e);
}
return conn;
}
public void setUsePool(boolean usePool) {
this.usePool = usePool;
}
///