Ubuntu Tomcat7 java.lang.ClassNotFoundException: org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory
Ich versuche zum einrichten einer JDBC-DataSource in Tomcat 7 unter Ubuntu 12.X, also ich habe Folgendes in der context.xml Datei:
<Resource name="jdbc/myDS" auth="Container" type="javax.sql.DataSource"
maxActive="5" maxIdle="2" maxWait="5000"
driverClassName="org.postgresql.Driver" username="usr" password="***" url="jdbc:postgresql://localhost:5432/db" />
Offensichtlich, mit der rechten und getesteten Datenbank-Benutzer-id und Passwort. Wenn ich starten Sie Tomcat neu, bekomme ich diese Fehlermeldung:
Feb 05, 2013 1:10:01 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]
Habe ich gegoogelt und herausgefunden, dass der JDBC-Treiber kopiert werden muss, um die $CATALINA_HOME/lib-Ordner, also kopierte ich die postgresql-9.2-1000.jdbc4.jar /usr/share/tomcat7/lib, aber es hat nicht geholfen. Ich habe versucht, kopieren Sie die Datei an andere Standorte, mit dem gleichen Ergebnis.
Weiterer Versuch war die änderung der tomcat-dbcp.jar symlink in /usr/share/tomcat7/lib ../../java/tomcat-dbcp-7.0.30.jar ../../java/tomcat-dbcp.jar. Die einzige änderung war, ich habe nur eine Warnung anstelle von vier, aber die Datenquelle nicht funktioniert entweder.
Java-version:
jdoe@sever:~$ java -version
java version "1.7.0_09"
OpenJDK Runtime Environment (IcedTea7 2.3.4) (7u9-2.3.4-0ubuntu1.12.10.1)
OpenJDK 64-Bit Server VM (build 23.2-b09, mixed mode)
Jede Spur, sehr begrüßt.
Cheers.
InformationsquelleAutor der Frage Edo | 2013-02-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Bibliothek
tomcat-dbcp-7.0.30.jar
aus den repositories ist beschädigt.Ersetzen Sie es mit:
sudo wget -O /usr/share/java/tomcat-dbcp-7.0.30.jar http://search.maven.org/remotecontent?filepath=org/apache/tomcat/tomcat-dbcp/7.0.30/tomcat-dbcp-7.0.30.jar
InformationsquelleAutor der Antwort amra
Die Ursache ist ein Problem bei der Ubuntu-build/Paket Prozess für Tomcat7. Wenn ich verstehe die Frage richtig, Apache baut tomcat-dbcp.jar aus den binären Dateien, während Ubuntu Pakete baut, nur aus der Quelle. Das Ubuntu-Projekt endet benötigen Sie zum ändern der Java-package-Namen, die dazu neigt, die Dinge brechen für uns Arme Benutzer. Die blutigen details finden Sie auf der Ubuntu-Themen-Liste.
Die Lösung, die ich gefunden ist, um den Namen der Datenquelle Fabrik, wenn ich definieren Sie die Ressource. In einem Fall habe ich eine META-INF/context.xml die Datei enthält:
Zentrales element ist die "Fabrik" - Erklärung, die überschreibt die eingebaute default.
Auf unseren Produktionsmaschinen, die Ressource definiert wird, in der GlobalNamingResources element der server.xml Datei. Die Angabe der Fabrik ist nur erforderlich, auf den Ubuntu-Systemen.
InformationsquelleAutor der Antwort Steve
ich hatte das gleiche problem unter CentOS. Ich habe arounbd dies durch das herunterladen einer neuen Kopie der tomcat-Website hochgeladen und von tomcat-dbcp.jar auf meinem online-server, lib, server-Neustart 🙂
InformationsquelleAutor der Antwort Sameeh Harfoush
Ich hatte das gleiche problem auf Fedora 20 mit Tomcat 7.0.55. Ich ersetzte die 7.0.30 mit 7.0.55 in den Datei-Pfad und-Dateinamen und dieses arbeitete für mich. Nicht sicher, warum, aber diese Datei war völlig verschwunden, von der YUM install für tomcat 7. Verwenden kann eine Datenbank ohne es.
InformationsquelleAutor der Antwort Cory
Dass es getan hat.
Stellen Sie sicher, wenn die tomcat-dbcp-7.0.30.jar Datei nicht unter der Größe, dann kann es beschädigt werden und Sie müssen es ersetzen durch das sudo wget-Befehl oben.
-rw-r--r-- 1 root root 235411 1. Mai 2013 tomcat-dbcp-7.0.30.jar
lrwxrwxrwx 1 root root 22 Jan 10, 2013 tomcat-dbcp.jar -> tomcat-dbcp-7.0.30.jar
InformationsquelleAutor der Antwort Nabeel Hendow