GRAVE: Impossible de créer des connexions initiales de la piscine - tomcat 7 avec context.xml fichier
J'ai essayé de l'exécution du projet sur tomcat 7.0.52
et initialiser DB par context.xml
fichier.
Mais il jette des tas d'exceptions, je ne pouvais pas comprendre ce qui s'est trompé.
Ici est sortie de la console:
java.sql.SQLException: com.mysql.jdbc.Driver
at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:254)
at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:182)
at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:701)
at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:635)
at org.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:486)
at org.apache.tomcat.jdbc.pool.ConnectionPool.<init>(ConnectionPool.java:144)
at org.apache.tomcat.jdbc.pool.DataSourceProxy.pCreatePool(DataSourceProxy.java:116)
at org.apache.tomcat.jdbc.pool.DataSourceProxy.createPool(DataSourceProxy.java:103)
at org.apache.tomcat.jdbc.pool.DataSourceFactory.createDataSource(DataSourceFactory.java:554)
at org.apache.tomcat.jdbc.pool.DataSourceFactory.getObjectInstance(DataSourceFactory.java:242)
at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:141)
at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:321)
Ici est plein trace de la pile.
Ici, elle est sortie de tomcat catalina journal
extrait de web.xml:
<resource-ref>
<description>Travel Agency Datasource</description>
<res-ref-name>jdbc/onlinedb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
context.xml:
<Context>
<Resource name="jdbc/onlinedb"
type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
maxActive="20" maxIdle="10"
maxWait="-1"
username="root"
password="secret"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/travelagency?characterEncoding=utf8"/>
</Context>
ConnectionManager classe:
public class ConnectionManager {
private static Logger log = Logger.getLogger(ConnectionManager.class);
public static Connection getConnection() throws SQLException {
Connection con = null;
try {
Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:/comp/env");
DataSource datasource = (DataSource) envContext.lookup("jdbc/onlinedb");
con = datasource.getConnection();
} catch (NamingException e) {
log.error(e);
}
return con;
}
}
mysql-connector-java-5.1.27-bin.jar
est ajouté au cp:
J'ai essayé de modifier le contenu de context.xml fichier:
<resource-env-ref>
<description>Travel Agency Datasource</description>
<resource-env-ref-name>jdbc/onlinedb</resource-env-ref-name>
<resource-env-ref-type>javax.sql.DataSource</resource-env-ref-type>
</resource-env-ref>
Mais gardez à défaut.
Comment résoudre ce problème?
OriginalL'auteur nazar_art | 2014-03-03
Vous devez vous connecter pour publier un commentaire.
Vous devez ajouter un pilote jdbc MySQL dans le classpath.
Soit mettre un MySQL binaire pot à lib de tomcat un dossier ou ajouter qu'il nous demande WEB-INF/lib dossier.
Vous pouvez trouver binaire pot (Changer de version en conséquence): https://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.27
Essayez de l'ajouter au dossier lib de tomcat
il fonctionne vraiment, merci
OriginalL'auteur WeMakeSoftware
Lorsque vous rencontrez des exceptions de ce genre, l'information la plus utile est généralement à la partie inférieure de la stacktrace:
Le problème est que Tomcat ne pouvez pas trouver
com.mysql.jdbc.Driver
. Cela est généralement causé par le BOCAL contenant le pilote MySQL n'étant pas où Tomcat s'attend à trouver (à savoir dans lewebapps/<yourwebapp>/WEB-INF/lib
répertoire).OriginalL'auteur matt b
J'ai également traité cette exception après un travail entièrement context.xml le programme d'installation a été ajusté. Je ne voulais pas les détails de l'environnement dans le context.xml, donc je les ai sortis et ont vu cette erreur. J'ai réalisé que je doit pleinement créer la source de données de ressources dans le code basé sur le Système de la Propriété de la JVM -D args.
Erreur d'origine avec juste user/pwd/accueil supprimée:
org.apache.tomcat.jdbc.piscine.ConnectionPool init
GRAVE: Impossible de créer des connexions initiales de la piscine.
Supprimé tout le contenu de context.xml et essayez ce qui suit:
Initialiser au démarrage de l'app serveur de l'objet source de données un peu avant, à l'aide de la première connexion. Si à l'aide de Printemps, il est bon de le faire dans un @Configuration haricot @Bean source de données constructeur.
package à utiliser: org.apache.tomcat.jdbc.piscine.*
Hi - désolé, était de travailler sur l'édition que j'ai trouvé la solution avant de soumettre première partie. Pouvez vous s'il vous plaît nouveau vote si vous acceptez ce qui est maintenant utile.
J'ai fait n'était pas celui qui l'downvoted votre réponse. Cependant, il est toujours un peu déroutant, comme vous avez l'air de poser une question distincte et ensuite répondre à la question d'origine? Si vous ré-éditer pour supprimer votre question (ce qui serait préférable de poser une question distincte, à mon humble avis) je vais upvote pour éliminer les dégâts infligés par votre downvoter.
Bon point, en fait, je vous remercie.
Et de fait. Merci!
OriginalL'auteur bjm88
- Je utiliser sprint-boot (2.1.1), et la version de mysql est 8.0.13. - Je ajouter de la dépendance dans les pom, de résoudre mon problème.
MySQL Connector/J » 8.0.13 lien: https://mvnrepository.com/artifact/mysql/mysql-connector-java/8.0.13
MySQL Connector/J » Toutes les version lien:
https://mvnrepository.com/artifact/mysql/mysql-connector-java
OriginalL'auteur Zgpeace