Tomcat et le pool de connexion JDBC
Je suis en train de mettre en place le regroupement de connexion à mysql databe avec tomcat. Mon application simple est appelé Projekt, dans mon Projekt.xml dans Apache/conf/Catalina/localhost j'ai
<Context docBase="Projekt.war" path="/Projekt">
<Resource name="jdbc/mysqldb"
auth="Container"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/Music"
username="andrzej"
password="qazxsw"
maxActive="20"
maxIdle="30"
maxWait="5"
/>
</Context>
web.xml de mon application
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>org.jtp.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/Hai</url-pattern>
</servlet-mapping>
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/mysqldb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
et dans mon Apache/lib dossier que j'ai
mysql-connector-java-5.1.18-bin.jar
mais quand j'exécute ce code:
Context initContext = new InitialContext();
dataSource = (DataSource)initContext.lookup("java:comp/env/jdbc/mysqldb");
System.out.println(dataSource.getConnection().createStatement().
execute("select * from Users"));
- Je obtenir exception
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
Je suis perplexe maintenant, dans certains endroits, j'ai lu qu'il peut être causée par ne pas placer pilote dans tomcat/lib, mais je l'ai et il fonctionne, parce que quand j'ai testé le pilote avec le manuel connexions, il a travaillé.
Pour ma configuration, j'essayais de suivre
http://people.apache.org/~fhanik/jdbc-pool/jdbc-pool.html
EDIT:
A finalement obtenu ce travail, il me semblait que j'avais une certaine gauche contexte des balises dans l'un des fichiers donc, lors de l'analyse, il a remplacé d'autres attributs, donc c'est de ma faute à la fin.
OriginalL'auteur Andna | 2012-02-09
Vous devez vous connecter pour publier un commentaire.
Dirait que vous êtes manquant
Context envCtx = (Context) initCtx.lookup("java:comp/env");
Recherche JNDI devrait être fait comme ceci:
documentation de http://tomcat.apache.org/tomcat-7.0-doc/jndi-resources-howto.html.
Sonne comme ce gars avait le même problème et a posté une solution blogs.agilefaqs.com/2009/11/23/...
Toujours rien, je peux écrire dans ce dossier, j'ai même créé contex.xml dans ma webapp, toujours la même erreur.
ont u supprimé le TOMCAT_HOME/Webapp/Projekt dossier à chaque fois u reconstruire? J'ai trouvé si je travaille avec .les guerres de tomcat ne marche pas toujours évident de l'ancien code.
Ouais, ça fonctionnerait bien.
OriginalL'auteur drobson
Pour atteindre connexion JDBC à la mise en commun avec Tomcat, il y a un alternative à XML fichiers de configuration. Je n'ai jamais été en mesure d'obtenir les Contexte et resource-ref balises de travail. En outre, ces balises sont overkill si vous n'avez pas vraiment besoin de la JNDI fonctionnalités.
L'alternative est d'utiliser code Java pour configurer Tomcat connexion JDBC de la mutualisation. Voir un exemple de code dans la Plain Ol' Java section de Tomcat 7 page de documentation, Le Tomcat Pool de connexions JDBC.
Fondamentalement, vous:
Facile comme bonjour. C'est comme ça...
À utiliser la source de données...
La source de données peut être stocké:
ServletContext
à l'aide intégrée dans la cartographie desString
àObject
, comme décrit à la une Réponse de la mine et comme indiqué sur la Question Comment obtenir et de définir un objet global dans le contexte de servlet Java.c'est ce que suis à la recherche de plus de 3 jours....! 🙂 thankz pour le partage....!
OriginalL'auteur Basil Bourque