Galera,
Com certeza alguem já se deparou com este erro.
Estou usando Eclipse 3M e jakarta-tomcat-5.0.25
editei o server.xml do tomcat:
<DefaultContext>
<Resource name="jdbc/hsql" auth="Container" type="javax.sql.DataSource" scope="Shareable"/>
<ResourceParams name="jdbc/hsql">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>org.hsqldb.jdbcDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:hsqldb:hsql://localhost</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>password</name>
<value></value>
</parameter>
<parameter>
<name>maxActive</name>
<value>5</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>10</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>100</value>
</parameter>
</ResourceParams>
</DefaultContext>
Estou usando o HSQL. Subi o banco como Server!!!
Fiz um servlet para iniciar o DataSource:
public class Inicializador extends HttpServlet {
public Inicializador(){
DBAccess.getInstance();
}
}
mapei o web.xml
<servlet>
<servlet-name>Inicializador</servlet-name>
<servlet-class>br.com.tecnologia.system.initializer.Inicializador</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
Fiz um singleton que inicia o dataSource:
public final class DBAccess {
protected static DBAccess dbAccess = null;
protected static DataSource dataSource = null;
private DBAccess() throws Exception{
if(dataSource == null){
System.out.println("Inicializando DataSource ...");
InitialContext ic = new InitialContext();
dataSource = (DataSource) ic.lookup("java:comp/env/jdbc/hsql");
System.out.println("DataSource - OK");
}
}
/**
* @return
*/
public static DBAccess getInstance(){
if(dbAccess == null){
try{
dbAccess = new DBAccess();
}
catch(NamingException e){
e.printStackTrace();
}
catch(Exception ex){
ex.printStackTrace();
}
}
return dbAccess;
}
}
Quando inicio o tomcat dá o seguinte erro:
Inicializando DataSource ...
javax.naming.NameNotFoundException: Name jdbc is not bound in this Context
at org.apache.naming.NamingContext.lookup(NamingContext.java:768)
at org.apache.naming.NamingContext.lookup(NamingContext.java:138)
at org.apache.naming.NamingContext.lookup(NamingContext.java:779)
at org.apache.naming.NamingContext.lookup(NamingContext.java:138)
at org.apache.naming.NamingContext.lookup(NamingContext.java:779)
at org.apache.naming.NamingContext.lookup(NamingContext.java:151)
at org.apache.naming.SelectorContext.lookup(SelectorContext.java:136)
at javax.naming.InitialContext.lookup(InitialContext.java:347)
at br.com.tecnologia.db.DBAccess.<init>(DBAccess.java:36)
...
?
[]´s