javax.de nommage.NamingException: impossible de créer la ressource usine instance
Tout d'abord, je ne suis pas un développeur Java. J'ai juste besoin d'une simple exemples de jsp qui se connecte à une base de données postgres et de récupérer quelques informations.
Je l'ai eu en cours d'exécution sur un local env, mais lorsque j'essaie d'exécuter sur le serveur de production ( Apache Tomcat 6.0.29 ), il ne fonctionne tout simplement pas. Page affiche l'exception suivante:
org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: Unable to get connection, DataSource invalid: "java.sql.SQLException: No suitable driver found for jdbc/postgres"
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:491)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:401)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
J'ai remarqué que lorsque je recharge la demande, catalina.les spectacles le problème suivant:
Aug 23, 2011 2:21:07 PM org.apache.catalina.core.NamingContextListener addResource
WARNING: Failed to register in JMX: javax.naming.NamingException: Could not create resource factory instance [Root exception is java.lang.ClassNotFoundException: org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory]
Dans WEB-INF/lib, j'ai les fichiers suivants:
# ls -lh
total 1.3M
-rwxr-xr-x 1 tomcat tomcat 17K Aug 23 14:15 jstl.jar
-rwxr-xr-x 1 tomcat tomcat 160K Mar 5 2007 naming-factory-dbcp.jar
-rwxr-xr-x 1 tomcat tomcat 528K Aug 23 14:18 postgresql-9.0-801.jdbc4.jar
-rwxr-xr-x 1 tomcat tomcat 313K Aug 23 14:16 standard.jar
-rwxr-xr-x 1 tomcat tomcat 248K Aug 22 22:18 tomcat-dbcp.jar
J'ai essayé de googler à ce sujet, mais toutes les solutions mention naming-factory-dbcp.jar qui est déjà là. Toutes les idées de ce que je dois faire?
Merci!
MODIFIER
Voici ma lib de tomcat:
-rw-r--r-- 1 tomcat nobody 11K Jun 8 2009 lib/annotations-api.jar
-rw-r--r-- 1 tomcat nobody 49K Jun 8 2009 lib/catalina-ant.jar
-rw-r--r-- 1 tomcat nobody 121K Jun 8 2009 lib/catalina-ha.jar
-rw-r--r-- 1 tomcat nobody 1.1M Jun 8 2009 lib/catalina.jar
-rw-r--r-- 1 tomcat nobody 225K Jun 8 2009 lib/catalina-tribes.jar
-rw-r--r-- 1 tomcat nobody 28K Jun 8 2009 lib/el-api.jar
-rw-r--r-- 1 tomcat nobody 101K Jun 8 2009 lib/jasper-el.jar
-rw-r--r-- 1 tomcat nobody 501K Jun 8 2009 lib/jasper.jar
-rw-r--r-- 1 tomcat nobody 1.4M Jun 8 2009 lib/jasper-jdt.jar
-rw-r--r-- 1 tomcat nobody 75K Jun 8 2009 lib/jsp-api.jar
-rw-r--r-- 1 tomcat nobody 86K Jun 8 2009 lib/servlet-api.jar
-rw-r--r-- 1 tomcat nobody 732K Jun 8 2009 lib/tomcat-coyote.jar
-rw-r--r-- 1 tomcat nobody 193K Jun 8 2009 lib/tomcat-dbcp.jar
-rw-r--r-- 1 tomcat nobody 65K Jun 8 2009 lib/tomcat-i18n-es.jar
-rw-r--r-- 1 tomcat nobody 43K Jun 8 2009 lib/tomcat-i18n-fr.jar
-rw-r--r-- 1 tomcat nobody 48K Jun 8 2009 lib/tomcat-i18n-ja.jar
- Vous risquez de ne pas initialiser le pilote jdbc/postgres pilote d'une manière correcte. Veuillez vérifier la syntaxe et de vérifier si les bibliothèques requises sont chargés dans le classpath du projet. La bonne façon de le faire est
jdbc:postgresql://server_name
- Amende que vous avez inclus la liste des
Tomcat/lib
. Mais le point clé comme répondu par la maison, c'est que vous devez jamais serveur des bibliothèques spécifiques dans webapp est/WEB-INF/lib
. Il fait de la webapp portables aux serveurs de différentes/version. Il va entraîner dans le classpath ennuis. Avez-vous les retirez de/WEB-INF/lib
? LeTomcat/lib
dossier doit être conservé intact. En plus, vous déposez le pilote JDBC de là, mais à ne certainement pas les modifier ou les supprimer de Tomcat propres bibliothèques. - Salut, il semble correct. La même application fonctionne sur mon ordinateur hôte local, mais pas sur le serveur de production.
- Yep, juste enlevé naming-factory-dbcp.jar et tomcat-dbcp.jar à partir de mon application lib. Mais j'obtiens toujours la même erreur.
Vous devez vous connecter pour publier un commentaire.
dbcp
classes devrait déjà être disponible danstomcat/lib
. Il n'est pas nécessaire d'inclure ensuite dans votre fichier WAR - elle peut conduire à la classe loader irritations si vous utilisez la version incorrecte. Essayez de supprimer le...dbcp.jar
des fichiers à partir de votre WEB-INF/lib, mettre lepostgres...jar
àtomcat/lib
et redémarrez Tomcat.context.xml
? Consultez le manuel de nouveau, peut-être que vous avez manqué quelque chose: tomcat.apache.org/tomcat-6.0-doc/...