2012-01-11 3 views
0

J'ai une application web (java et MySQL) qui fonctionne très bien sur ma configuration de développement, mais ne parvient pas à se connecter à la base de données sur le serveur de production.Connexion nulle à partir de l'application Web. vers une base de données MySQL sur le serveur de production

Le fichier est context.xml:

<!-- MySQL --> 
<Realm className="org.apache.catalina.realm.JDBCRealm" debug="0" 
    driverName="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost/xxxxxxxx?characterEncoding=UTF-8" 
    connectionName="yyyyyyy" connectionPassword="zzzzzzz" userTable="users" 
    userNameCol="user_name" userCredCol="user_pass" userRoleTable="user_roles" 
    roleNameCol="role_name" /> 


<!-- Database Pool --> 
<Resource name="jdbc/DB" auth="Container" type="javax.sql.DataSource" 
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory" 
maxActive="25" maxIdle="5" maxWait="30000" removeAbandoned="true" 
removeAbandonedTimeout="60" logAbandoned="true" driverClassName="com.mysql.jdbc.Driver" 
url="jdbc:mysql://localhost/xxxxxxx?autoReconnect=true&amp;zeroDateTimeBehavior=convertToNull" 
username="yyyyyyy" password="zzzzzzz" /> 

Le code .java qui obtient une connexion est:

public Connection getConnection(){ 
    Connection conn = null; 
    try { 
     Context initContext = new InitialContext(); 
     Context envContext = (Context) initContext.lookup("java:/comp/env"); 
     javax.sql.DataSource ds = (javax.sql.DataSource) envContext.lookup("jdbc/DB"); 
     conn = ds.getConnection(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return conn; 
} 

Il existe des données dans la base de données , l'utilisateur et le mot de passe existent et sont ce qu'ils disent qu'ils sont dans le contexte fi le, mais la connexion (à partir du code java) revient à zéro. J'ai essayé de regarder les fichiers journaux, mais ceux que j'ai vus ne contiennent aucun élément généré par cette application.

Notez que je ne suis pas l'administrateur du serveur de production, donc je dois demander au sysadmin des fichiers ou des données. Il est une personne utile, mais dire simplement «regarder les journaux» (par exemple) ne va pas faire autant de bien que quelque chose de plus spécifique.

Merci pour toute aide, Miriam

Répondre

0

Il semble qu'il devrait y avoir des sorties d'erreur.

La variable conn était initialement définie sur null et votre bloc catch a intercepté l'erreur. en regardant le fichier journal ne sera pas utile parce que vous sortie à la console au lieu de sortie dans un fichier journal

e.printStackTrace();

configurer log4j et utiliser le journal avec log.error (e); OK, j'ai un meilleur message d'erreur - ce qui est dit "Impossible de charger la classe d'usine de ressources". ou recherchez l'erreur dans la console et publiez ici

+0

Notre administrateur système a suggéré d'essayer org.apache.commons.dbcp.BasicDataSourceFactory au lieu de org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory. Je l'ai essayé et j'ai reçu le même message d'erreur. Quelqu'un ici a des idées? – user725694

Questions connexes