Ne peut pas créer PoolableConnectionFactory (Accès refusé pour l'utilisateur "@'localhost'

J'ai essayé de configurer un DatabaseConnectionPool pour une application web pour le couple des derniers jours, sans succès. J'ai lu les articles pertinents de la Tomcat docs et une excellente affaire autour de l'objet, et que je suis fait tout droit, mais, évidemment, pas parce que j'obtiens toujours le message d'erreur suivant:

Cannot create PoolableConnectionFactory (Access denied for user ''@'localhost' (using password: YES))

Je ne suis pas l'erreur quand je lance Tomcat en cours d'exécution, mais lorsque j'essaie d'exécuter la suite de servlet:

package twittersearch.web;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.sql.*;
import javax.sql.*;
import javax.naming.*;
import twittersearch.model.*;
public class ConPoolTest extends HttpServlet {

    public void doGet(HttpServletRequest request,
                  HttpServletResponse response) 
                  throws IOException, ServletException {
        Context ctx = null;
        DataSource ds = null;
        Connection conn = null;
        try {
            ctx = new InitialContext();
            ds = (DataSource)ctx.lookup("java:comp/env/jdbc/twittersearchdb");
            conn = ds.getConnection();
            if(conn != null) {
                System.out.println("have a connection from the pool");
            }
        } catch(SQLException e) {
            e.printStackTrace();
        } catch(NamingException e) {
            e.printStackTrace();
        } finally {
            try {
                if(conn!=null) {
                    conn.close();
                }
            } catch(SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

Le contexte de la webapp est:

<?xml version='1.0' encoding='utf-8'?>
<Context>

    <!-- Configure a JDBC DataSource for the user database -->
 <Resource name="jdbc/twittersearchdb" 
           type="javax.sql.DataSource" 
     auth="Container" 
     user="root" 
     password="mypwd" 
     driverClassName="com.mysql.jdbc.Driver" 
     url="jdbc:mysql://localhost:3306/twitter" 
     maxActive="8" 
     maxIdle="4"/>


</Context>

Ce que je ne comprends pas, c'est pourquoi l'erreur n'est pas de dire que l'accès est refusé à 'root'@'localhost' quand j'ai précisé que c'est à l'utilisateur.

Ce que j'ai essayé:

Dois-je avoir un duplicata context.xml? Pas de. J'ai supprimé le défaut de Tomcat 6.0/conf. J'ai essayé de mettre un context.xml dans [mywebappname]/META-INF/context.xml mais pas seulement-ce pas le travail, mais ont abouti à la création d'un fichier nommé TwitterSearch.xml qui a été généré automatiquement et de les mettre dans le Tomcat 6.0/conf/Catalina/localhost répertoire. Alors maintenant, je suis juste éditer qu'un seul et c'est le seul que j'ai.

Est-il de la version de Tomcat? Eh bien, je l'ai entièrement réinstallé la dernière version de Tomcat 6.0, donc je ne pense pas que c'est.

Sommes-nous en manque quelques pots? J'ai l'tomcat-dbcp.jar, jconnector.jar et tous les autres que je pense que je suis destiné à avoir dans le Tomcat 6.0/lib.

Quand je regarde les mots de passe dans la base de données MySQL, ils semblent avoir été codées à des fins de sécurité dans un long chaîne alphanumérique. Est-ce normal? Dois-je avoir dans mon context.xml ou tout simplement le mot de passe normal?

Je ne sais vraiment pas comment je peux régler cette question et serions très reconnaissants de recevoir des conseils d'experts.

Merci beaucoup à l'avance.

Joe

OriginalL'auteur Joe | 2010-09-23