la difficulté avec JNDI de la Source de Données dans Tomcat
J'ai eu un moment difficile de prendre une JNDI de la source de données de travail. Suite des instructions à
http://tomcat.apache.org/tomcat-5.5-doc/jndi-resources-howto.html
Je suis de la connexion à oracle avec Tomcat5.5
Je peux me connecter très bien si j'utilise directement la connexion JDBC dans le code.
Voici ce que j'ai:
dans mon META-INF/context.xml:
<Resource name="jdbc/mydb" auth="Container"
type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:theserver:1521/mydb"
username="user" password="password" maxActive="20" maxIdle="10"
/>
ici est ce qui est dans web.xml:
<resource-ref>
<description>please work</description>
<res-ref-name>jdbc/mydb</res-ref-name>
<res-type>
javax.sql.DataSource
</res-type>
<res-auth>Container</res-auth>
</resource-ref>
voici le code:
Connection conn = null;
try{
InitialContext ic = new InitialContext();
DataSource ds = (DataSource) ic.lookup("java:comp/env/jdbc/mydb");
conn = ds.getConnection();
} catch ....... etc.
J'ai essayé plusieurs configurations différentes, et a commencé un nouveau projet simple pour s'assurer qu'aucun supplément de fichiers jar en conflit ou quelque chose comme ça, mais .
quelqu'un peut voir tout ce qui ne regarde pas à droite?
l'erreur sur le serveur indique une NullPointerException lorsque je tente d'utiliser la conn objet.
excusez-moi, il propose tout d'abord: org.apache.tomcat.dbcp.dbcp.SQLNestedException: Impossible de créer PoolableConnectionFactory (Io exception: La Carte Réseau n'a pas pu établir la connexion)
Vous devez vous connecter pour publier un commentaire.
La base de données url semble cassé pour moi.
essayer:
"La Carte Réseau n'a pas pu établir la connexion"
C'est ton idée. Il ne peut pas atteindre la base de données. Vérifiez votre serveur et le port sont corrects, vérifiez qu'ils sont accessibles à partir de votre machine.
Je suis de répondre aux commentaires dans Sebastian réponse.
Quand je vois org.apache.commons.dbcp, cela signifie que Tomcat est l'aide de l'Apache Commons Connexion de Base de données mise en commun de la bibliothèque à la place de la bibliothèque dans l'Oracle JDBC driver.
L'Oracle JDBC driver n'est pas dans le répertoire courant est généralement le premier problème que je cherche à résoudre. Il apparaît que ce n'est pas votre problème.
Deuxième, lors du démarrage de l'application, s'il y avait un problème de la création de la datasource JNDI Tomcat peut utiliser les Communes de la bibliothèque. Cela peut être votre cas à cause de votre mauvaise base de données d'URL. La correction context.xml ou le copié/fichier renommé dans la conf/Catalina/localhost répertoire ne peut pas résoudre le problème sans arrêt et le redémarrage de Tomcat. Donc, je vous recommande l'arrêt et le redémarrage de Tomcat et de voir si cela corrige le problème.
Une dernière remarque, le lien que vous fournissez pour le réglage de la Commune de la bibliothèque. Il m'a fallu un certain temps pour comprendre cela. Ci-dessous est un exemple d'un de mes JNDI de la source de données Oracle définitions.
Je ne suis pas sûr si le type de questions dans votre cas, et je crois que l'utilisateur et le mot de passe sont toujours les attributs de la Ressource de la balise. Ce que je veux souligner est que l'attribut connectionCacheProperties. C'est ici que vous spécifiez spécifiez le maximum et le minimum de connexions. Aller à Connexion Des Propriétés De Cache pour plus d'info sur cet attribut.
Espère que cette aide.