Erro conexão My SQL

10 respostas
R

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

}
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
<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>
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

10 Respostas

D

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+

R

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!!

R

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

Obrigado…

Rodrigo.

D

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+

R

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

muito bem como faço isso?

obrigado.

D

diretamente dos confins do TOMCAT…

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

t+

R

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!!!

R

diretamente dos confins do TOMCAT…

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

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?

<parameter>
          <name>removeAbandoned</name>
          <value>true</value>
        </parameter>
    <parameter>
          <name>removeAbandonedTimeout</name>
          <value>60</value>
        </parameter>
    <parameter>
          <name>logAbandoned</name>
          <value>true</value>
        </parameter>

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.

M

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

:okok:

R

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?

Criado 21 de setembro de 2006
Ultima resposta 23 de set. de 2006
Respostas 10
Participantes 3