Tentando rodar o tutorial Hibernate 2.1.x - problema JNDI

Ola,

Estou tentando executar o tutorial em:
http://www.hibernate.org/hib_docs/reference/en/html/quickstart.html
mas naquela parte de JNDI, ele poe um endereco:
java:comp/env/jdbc/quickstart
mas da a seguinte excecao:

SEVERE: Could not find datasource: java:comp/env/jdbc/quickstart
javax.naming.NamingException: Cannot create resource instance
at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:167)
at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:301)
at org.apache.naming.NamingContext.lookup(NamingContext.java:834)
at org.apache.naming.NamingContext.lookup(NamingContext.java:181)
at org.apache.naming.NamingContext.lookup(NamingContext.java:822)
at org.apache.naming.NamingContext.lookup(NamingContext.java:181)
at org.apache.naming.NamingContext.lookup(NamingContext.java:822)
at org.apache.naming.NamingContext.lookup(NamingContext.java:181)
at org.apache.naming.NamingContext.lookup(NamingContext.java:822)
at org.apache.naming.NamingContext.lookup(NamingContext.java:194)
at org.apache.naming.SelectorContext.lookup(SelectorContext.java:183)
at javax.naming.InitialContext.lookup(InitialContext.java:347)

Sera que tem mais alguma config para eu fazer.
Eu nunca usei JNDI e nao sei se tem algo que “eu deveria saber” antes de
rodar o tutorial.

Este exemplo vc. precisa fazer “dentro” do Tomcat…

O seu datasource no Tomcat esta funcionando ?

Experimenta fazer um teste de servlet chamando este teu datasource. Parece que o
problema eh este.

[code]]

public class Postos extends HttpServlet {

Connection connection;
PreparedStatement pstmt;
ResultSet rset;

public void init(ServletConfig config) throws ServletException {
    super.init(config);

    try {
        InitialContext ctx = new InitialContext();
        DataSource ds = (javax.sql.DataSource) ctx.lookup("java:comp/env/jdbc/Nl"); // mude o seu DS
        if ( !(ds == null)) {
            connection = ds.getConnection();
            String query = "select....";
            pstmt = connection.prepareStatement(query);
        }
    } catch (SQLException e) {
        throw new UnavailableException("Nao foi possivel conectar no banco de dados.");
    } catch (NamingException e) {
        throw new UnavailableException("Nao foi possivel estabelecer conexao.");
    }

}

[/code][/code]

Realmente é problema de Datasource.
Eu nunca usei este esquema de Datasource e JNDI.
O que pode estar errado?

Eu coloquei no server.xml:

<Context path="/hibernate" docBase="/home/edilmar/sistemas/javauml/hibernate/servlet">
<Valve className=“org.netbeans.modules.web.monitor.catalina.MonitorValve”/> org.netbeans.modules.web.monitor.catalina.DispatchListener
<Logger className=“org.apache.catalina.logger.FileLogger” prefix=“localhost_hibernate_log.” suffix=".txt" timestamp=“true”/>
<Resource name=“jdbc/hibernate” scope=“Shareable” type=“javax.sql.DataSource”/>
<ResourceParams name=“jdbc/hibernate”>
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>

    &lt;!-- DBCP database connection settings --&gt;
    &lt;parameter&gt;
        &lt;name&gt;url&lt;/name&gt;           &lt;value&gt;jdbc:firebirdsql:localhost/3050:/home/edilmar/sistemas/javauml/bd/javauml.fdb&lt;/value&gt;
    &lt;/parameter&gt;
    &lt;parameter&gt;
        &lt;name&gt;driverClassName&lt;/name&gt;&lt;value&gt;org.firebirdsql.jdbc.FBDriver&lt;/value&gt;
    &lt;/parameter&gt;
    &lt;parameter&gt;
        &lt;name&gt;username&lt;/name&gt;
        &lt;value&gt;SYSDBA&lt;/value&gt;
    &lt;/parameter&gt;
    &lt;parameter&gt;
        &lt;name&gt;password&lt;/name&gt;
        &lt;value&gt;masterkey&lt;/value&gt;
    &lt;/parameter&gt;
                                                                                                                         
    &lt;!-- DBCP connection pooling options --&gt;
    &lt;parameter&gt;
        &lt;name&gt;maxWait&lt;/name&gt;
        &lt;value&gt;3000&lt;/value&gt;
    &lt;/parameter&gt;
    &lt;parameter&gt;
        &lt;name&gt;maxIdle&lt;/name&gt;
        &lt;value&gt;100&lt;/value&gt;
    &lt;/parameter&gt;
    &lt;parameter&gt;
        &lt;name&gt;maxActive&lt;/name&gt;
        &lt;value&gt;10&lt;/value&gt;
    &lt;/parameter&gt;
&lt;/ResourceParams&gt;

</Context>

Abaixo esta a excecao completa…
javax.naming.NamingException: Cannot create resource instance
at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:167)
at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:301)
at org.apache.naming.NamingContext.lookup(NamingContext.java:834)
at org.apache.naming.NamingContext.lookup(NamingContext.java:181)
at org.apache.naming.NamingContext.lookup(NamingContext.java:822)
at org.apache.naming.NamingContext.lookup(NamingContext.java:181)
at org.apache.naming.NamingContext.lookup(NamingContext.java:822)
at org.apache.naming.NamingContext.lookup(NamingContext.java:181)
at org.apache.naming.NamingContext.lookup(NamingContext.java:822)
at org.apache.naming.NamingContext.lookup(NamingContext.java:194)
at org.apache.naming.SelectorContext.lookup(SelectorContext.java:183)
at javax.naming.InitialContext.lookup(InitialContext.java:347)
at ServletCadastros.init(ServletCadastros.java:40)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:918)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:810)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3279)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3421)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1123)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:638)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1123)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:343)
at org.apache.catalina.core.StandardService.start(StandardService.java:388)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:506)
at org.apache.catalina.startup.Catalina.start(Catalina.java:781)
at org.apache.catalina.startup.Catalina.execute(Catalina.java:681)
at org.apache.catalina.startup.Catalina.process(Catalina.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:243)
javax.naming.NameNotFoundException: Name jdbc is not bound in this Context
at org.apache.naming.NamingContext.lookup(NamingContext.java:811)
at org.apache.naming.NamingContext.lookup(NamingContext.java:181)
at org.apache.naming.NamingContext.lookup(NamingContext.java:822)
at org.apache.naming.NamingContext.lookup(NamingContext.java:181)
at org.apache.naming.NamingContext.lookup(NamingContext.java:822)
at org.apache.naming.NamingContext.lookup(NamingContext.java:194)
at org.apache.naming.SelectorContext.lookup(SelectorContext.java:183)
at javax.naming.InitialContext.lookup(InitialContext.java:347)
at ServletCadastros.init(ServletCadastros.java:40)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:918)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:810)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3279)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3421)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1123)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:638)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1123)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:343)
at org.apache.catalina.core.StandardService.start(StandardService.java:388)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:506)
at org.apache.catalina.startup.Catalina.start(Catalina.java:781)
at org.apache.catalina.startup.Catalina.execute(Catalina.java:681)
at org.apache.catalina.startup.Catalina.process(Catalina.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:243)