Erro conexão My SQL

Estou tentando conectar minha aplicação com o banco My SQL, mas…

Erro:

javax.servlet.ServletException: Name jdbc is not bound in this Context

O nome do meu banco de dados chama-se “strutsdemo”

Abaixo minha classe e configurações para efetuar a conexão

desde ja agradeço quem puder me ajudar!!

Rodrigo Marini.

Classe de conexão com banco de dados:

[code]package com.myapp.struts;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;

import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

public class AdminUsers {

protected static DataSource dataSource;

public AdminUsers() throws Exception {
    if (dataSource == null) {
        try {
           
       

              InitialContext ic = new InitialContext();
             // se for tomcat   ("java:comp/env/jdbc/StrutsDemoDS")mysql               
             dataSource = (DataSource) ic.lookup("java:comp/env/jdbc/StrutsDemoDS");
             // no JBoss faça
             //dataSource = (DataSource) ic.lookup("java:jdbc/StrutsDemoDS");

        } catch (NamingException ex) {
            System.out.println(ex.getMessage());
            throw ex;
        }
    }
}

protected Connection getConnection() throws SQLException {
    Connection conn = null;
    try {
        conn = dataSource.getConnection();
    }
    catch (SQLException e) {
        throw e;
    }
    return conn;
}


protected 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) {
        }
    }
}

}[/code]No meu ODBC do windows não configurei nada!

Minha configuração no TOMCAT foi feita no arquivo:
C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.0\conf\Catalina\localhost
onde preferi criar um arquivo chamado: strutsdemo.xml do que alterar o meu Server.xml
me disseram que fazer isso seria o mais correto(não sei se esta certo)…

Arquivo strutsdemo.xml[code]<DefaultContext>
<Resource name="jdbc/StrutsDemoDS" auth="Container" type="javax.sql.DataSource" scope="Shareable"/>
<ResourceParams name="jdbc/StrutsDemoDS">
<parameter><name>factory</name><value>org.apache.commons.dbcp.BasicDataSourceFactory</value></parameter>
<parameter><name>driverClassName</name><value>com.mysql.jdbc.Driver</value></parameter>
<parameter><name>url</name><value>jdbc:mysql://localhost/strutsdemo</value></parameter>
<parameter><name>username</name><value>root</value></parameter>
<parameter><name>password</name><value>root</value></parameter>
<parameter><name>maxActive</name><value>20</value></parameter>
<parameter><name>maxIdle</name><value>10</value></parameter>
<parameter><name>maxWait</name><value>100</value></parameter>
</ResourceParams>
</DefaultContext>

[/code]O Connector usado é mysql-connector-java-3.0.17-ga

eu coloquei o arquivo mysql-connector-java-3.0.17-ga-bin.jar no diretorio
C:\Meus Projetos\Net Beans\cadastroDataSource\build\web\WEB-INF\lib da minha aplicação
(mesmo onde se encontra o struts.jar)
A versão do meu My SQL é 5.0

esse jar de conexao é bem velho…
experimente o 3.1.1 ou 3.1.3

e coloque o conector dentro da pasta Tomcat/common/lib

t+

Oi Diana…

Me disseram que esse JAR é compativel com a versão do banco que uso 5.0 e que o conector devia estar dentro da pasta de minha aplicação… então esta errado?

e de resto tudo que fiz esta certo?

Obrigado!!

Fiz oque vc sugeriu mas não funcionou! Tem outra sugestão?
O restante da minha configuração esta correto?

Obrigado…

Rodrigo.

está certo…colocar o jar do banco na WEB-INF/lib da sua aplicação…sugeri colocar na pasta common/lib do TOMCAT pq aparentemente a sua app nao estava encontrando o jar…

Bom, vc criou um datasource para sua aplicação, certo?
Vc criou através da interface web do tomcat? acho q. nao…
sugiro q. vc experimente criar por ali…
e q. tb baixe algum client(DBVisualizer) para trabalhar com o seu banco de modo a testar se a URL de conexao está realmente correta.

t+

[quote]Vc criou através da interface web do tomcat? acho q. nao…
sugiro q. vc experimente criar por ali…
[/quote]

muito bem como faço isso?

obrigado.

diretamente dos confins do TOMCAT…

http://tomcat.apache.org/tomcat-4.1-doc/jndi-datasource-examples-howto.html

t+

Legal… como pode perceber sou iniciante e tudo isso é bastante complicado pra mim…
So me responda uma coisa ->
Esse link que vc passou explica como fazer uma conexão com o banco My SQL passo a passo em uma aplicação com servlets e jsp no Tomcat… estou certo??

Se for isso vou executar este exemplo e depois volto a trabalhar com a minha aplicação pois as coisas ficarão mais nitidas…

Obrigado!!!

[quote]diretamente dos confins do TOMCAT…

http://tomcat.apache.org/tomcat-4.1-doc/jndi-datasource-examples-howto.html
[/quote]

Oi!!

Com base na documentação que vc me indicou:

  • Criei o banco de dados javatest

  • alterei o arquivo server.xml no tomcat

  • configurei o web.xml de minha aplicação

  • criei a classe e a pagina jsp necessaria

    • porem eu não entendi exatamente quais drivers devo baixar nem onde devo coloca-los

a unica coisa que fiz foi colocar o arquivo mysql-connector-java-3.1.13-bin.jar

dentro do diretorio DBTest\web\WEB-INF da aplicação, a versão do meu My SQL é 5.0…

pode me dizer oque falta fazer pra funcionar?quais drivers faltarão e onde colocar cada um deles?

Tambem tem esses trechos, onde devo colocar?

        &lt;parameter&gt;
          &lt;name&gt;removeAbandoned&lt;/name&gt;
          &lt;value&gt;true&lt;/value&gt;
        &lt;/parameter&gt;
    &lt;parameter&gt;
          &lt;name&gt;removeAbandonedTimeout&lt;/name&gt;
          &lt;value&gt;60&lt;/value&gt;
        &lt;/parameter&gt;
    &lt;parameter&gt;
          &lt;name&gt;logAbandoned&lt;/name&gt;
          &lt;value&gt;true&lt;/value&gt;
        &lt;/parameter&gt;

gerou esta exception:

Caused by: java.sql.SQLException: No suitable driver

    at java.sql.DriverManager.getDriver(DriverManager.java:243)

    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:773)

Obrigado!!

Rodrigo.

Você tem que colocar o driver do banco no classpath do seu servidor.

:okok:

Oi Marcos, vc está falando em colcar driver na pasta common/lib do TOMCAT ?

No caso o driver é o conector que eu baixei:mysql-connector-java-3.1.13-bin.jar ?Pois se for isso ja tentei e não deu certo!!!
Após isso não preciso baixar mais nada?