WindowsServer (12) und Tomcat 7

javageplagte

Mitglied
Ich hoffe, dass ich hier nicht falsch bind.

Wir haben Probleme mit Web-Applikationen und Web-Services, die in Tomcat 7 ausgeführt werden, wobei Tomcat auf Win12 Server läuft. Wenn wir Tomcat local ausführen lassen, funktioniert alles wie erwartet. Wenn wir es auf Win12 danach laufen lassen, will es nicht (auch ein 1 zu 1 Kopieren hilft nicht). Tomcat-Homepage wird erreicht, aber WebService bleibt unerreichbar. Ein weiteres Problem ist der Zugriff auf die DB, die auf dem gleichen Server ausgeführt und einer WebAnwendung angesprochen wird. Wenn eine WebAnwendung in Tomcat auf dem lokalen Sytem ausgeführt wird, kann die DB auf Win12 angesprochen werden. Versuchen wir die gleiche Anwendung in Tomcat auf dem Win12 Server auszuführen, kann sie auf die DB, die auf dem gleichen Server ausgeführt wird, nicht zugreifen. Angeblich findet man JDBC-Treiber nicht. Den Treiber haben wir aber überall gehabt: im Lib-Verzeichniss der Anwendung, im Tomcat Lib-Verzeichniss, an beiden Orten.

- JDK: 1.7
- 64 bit
- Als WS Framework wird JAX WS RI (metro 2.2.1) verwendet.
- Als DBMS wird PostgreSQL 9.x verwendet

Auf einem alten Server (Win 2012) funktioniert alles wie erwartet.

Wir haben den Server vor einer Woche aufgesetzt und sind nicht sicher, ob dies mit Konfiguration des Servers zu tun hat. Hat jemand evtl. auch solche Probleme gehabt oder weiss jemand, woran es liegen könnte?
 

freez

Top Contributor
Die Beschreibung kann alles, oder nichts bedeuten. Wenn die Tomcat HP funktioniert scheint es ein Problem in der WebApp selbst zu geben.

Fehlermeldungen wären hilfreich. Findet man vorwiegend im Log Ordner von Tomcat.
 

javageplagte

Mitglied
Das Problem mit WebService konnte etwas entschärft werden. Da wir mit JAX-WS RI arbeiten, mussten wir jetzt alle Bibliotheken direkt in das WEB-INF\lib Verz. ablegen. Dies beansprucht viel Speicher und ist nur vorübergehend als eine "Lösung" tolerierbar, bis wir weiter kommen. Alle Versuche, JAX-WS RI Bibliotheken in das <CATALINA_HOME>\lib abzulegen oder in ein <CATALINA_HOME>\shared\lib (wobei shared.loader in catalina.properties angepasst wird) haben uns nicht weiter gebracht: wir bleiben dran!

Zum Problem mit DB-Treiber:

Java:
[2012-11-28 01:03:35,995 / ERROR]	(Util.java:60) - EntityManager kann nicht erzeugt werden!!!

javax.persistence.PersistenceException: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.3.3.v20120629-r11760): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: No suitable driver found for jdbc:postgresql://localhost:30120/my_db
Error Code: 0
	at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:517)
	at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.getDatabaseSession(EntityManagerFactoryDelegate.java:188)
	at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.createEntityManagerImpl(EntityManagerFactoryDelegate.java:277)
	at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:294)
	at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:272)
	at ch.hslu.suj.rooms.util.JpaUtil.getEntityManager(Util.java:56)
	...

Diese Ausnahme wird in der log-Datei angezeigt. Wie schon beschrieben, haben wir mit der Treiber-Ablage sowohl im <CATALINA_HOME>\lib als auch im WEB-INF\lib versucht, ohne erfolg.

Folgende Treiber wurden (abwechslungsweise) verwendet:
- postgresql-8.3dev-601.jdbc4.jar
- postgresql-9.2-1002.jdbc4.jar

Auf dem 2008-Server funktionieren beide, auf dem 2012-Server keiner. Nun, weiss ich im Moment nicht weiter.
 

freez

Top Contributor
No suitable driver found for jdbc:postgresql://localhost:30120/my_db

Ja, das klingt nicht gut. Ich hatte die Hoffnung, dass sich der Fehler doch als was anderes entpuppt, da du die üblichen Verdächtigen (WebInf/lib und Tomcat/lib) schon versucht hast und auf nem anderen Server läuft es. Aber er scheint tatsächlich nicht die passende Klasse zu finden.

Mit Administration vom Tomcat bin ich jetzt auch nicht sooo tief, aber vielleicht kann ich mal ins Blaue schiessen und ein paar Stichworte ins Rennen schicken:
  • vielleicht mal andere Java Versionen versuchen?
  • Hast du mal geschaut, ob es mit deinerJava Version Probleme auf Win12 gibt?
  • Hast durchgängig die richtige 32/64Bit Versionen aller Komponenten benutzt, je nach Betriebssystem?
 
Zuletzt bearbeitet:

javageplagte

Mitglied
  • vielleicht mal andere Java Versionen versuchen?
  • Hast du mal geschaut, ob es mit deinerJava Version Probleme auf Win12 gibt?
  • Hast durchgängig die richtige 32/64Bit Versionen aller Komponenten benutzt, je nach Betriebssystem?

Java-Version: habe mit 1.6 und 1.7 versucht, Win12 hat 1.7 installiert.
32-64 bit: alles 64 bit. Bei PostgreSQL bin ich mir nicht sicher, ob es sich um eine 64 bit Version handelt, jedoch kann ich PostgreSQL von Aussen problemlos ansprechen (PgAdmin / Applikation, die auf dem lokalen Tomcat-Server läuft).

Einzig was ich nicht weiss: Gibt es einen 64-Bit JDBC-Triber für PostgreSQL? Auf der Download-Seite habe ich es nicht gefunden!
 
M

maki

Gast
Einzig was ich nicht weiss: Gibt es einen 64-Bit JDBC-Triber für PostgreSQL? Auf der Download-Seite habe ich es nicht gefunden!
Einen UNterschied zwischen 32 und 64 Bit SW gibt es nur bei nativen Komponeten (DLLs/SOs/etc.), reines Java ist da agnostisch.
JDBC Type 4 Treiber sind reine Java Treiber, da sollte es keine expliziten 32/64 Bit Treiber geben.

Was genau ist das denn für ein Tomcat auf dem 2012 Server?
Läuft da eigentlich Mule oder ähnliches?
 

javageplagte

Mitglied
Es läuft Tomcat 7.0.32 ohne weitere Bibliotheken (wie schon zuvor geschrieben haben wir jetzt für WS alle Bibliotheken der IR in das jeweilige WEB-INF\lib verpackt).
 
J

JohannisderKaeufer

Gast
Code:
Internal Exception: java.sql.SQLException: No suitable driver found for jdbc:postgresql://localhost:30120/my_db

Diese Fehlermeldung wird oft misinterpretiert.
Beim Lesen dieser Fehlermeldung gehen viele davon aus, das eine jar-Datei mit dem Treiber im cp fehlt.

Das muß allerdings nicht zwangsläufig der Fall sein.

Um tatsächlich zu prüfen, ob der Treiber vorhanden und gefunden wird, empfehle ich ein Servlet das versucht folgenden Code auszuführen.

Java:
try {
  Class.forName("org.postgresql.Driver");
} catch (ClassNotFoundException cnfe) {
  System.err.println("Couldn't find driver class:");
  cnfe.printStackTrace();
}
bzw.
Code:
new org.postgresql.Driver();

Damit läßt sich dann überprüfen, ob das jar tatsächlich nicht erreichbar ist.

Auch wurden zwei verschiedene Versionen von Treibern verwendet.
- postgresql-8.3dev-601.jdbc4.jar
- postgresql-9.2-1002.jdbc4.jar

Hier würde ich schauen, daß die Version zur entsprechenden DB paßt.
Außerdem würde ich empfehlen sicherzustellen, daß auch wirklich nur eine dieser beiden Dateien vorhanden ist.
 

javageplagte

Mitglied
Vielen Dank für den Tipp.

Habe es (in Kürze) wie folgt gemacht:

Java:
PrintWriter w = new PrintWriter(response.getOutputStream());

try {
    Class.forName(org.postgresql.Driver");
    w.println("Treiber gefunden ;-)");
    w.flush();
} catch (ClassNotFoundException e){
    w.println("Treiber NICHT gefunden!");
    w.flush(); 
}

Die Ausgabe im Browser-Fenster hat bestätigt, dass auch ich die Fehlermeldung misinterpretiert habe:

Treiber gefunden ;-)

Jetzt erst weiss ich nicht weiter. Woher könnte diese Meldung sonst kommen?

Folgendes kommt mir noch in den Sinn:

Ich habe in der "persistence.xml" bei dem URL sowohl mit 'localhost' als auch mit 'xxx.xxx.xxx.xxx' versucht. Könnte da evtl. was schief laufen (mit Routing)? Da der DB-Server auf dem gleichen System läuft, würde ich erwarten, dass die beiden Varianten funktionieren. Oder, bin ich da auf dem Holzweg?
 

javageplagte

Mitglied
Habe jetzt den Tomcat 7.0.32 aufgegeben und Tomcat 7.0.14 installiert: es funktioniert einwandfrei. Anschliessend habe ich noch einmal Tomcat 7.0.33 mit dem Installer installiert und getestet: Das gleiche Problem, die gleiche Meldung.

Ich lasse es jetzt bei tomcat 7.0.14, muss ihn aber als Service installieren versuchen. Leider ist service.bat in der Version offenbar nicht dabei. Wenn ich es aus dem CommandPrompt installieren versuche (siehe Apache Tomcat 7 (7.0.14) - Windows service HOW-TO, werde ich mit der Meldung

Code:
Der Netzwerkpfad wurde nicht gefunden

verabschiedet. In der Anleitung ist allerdings von tomcat7.exe die Rede: diese Datei habe ich aber im bin-Verzeichnis nicht. Weiss jemand, wie ich Tomcat 7.0.14 jetzt als Dienst installieren könnte? Gibt es da evtl. Seiten, wo man mehr Infos findet?
 

javageplagte

Mitglied
Hat sich erledigt :)

Habe apache-tomcat-7.0.14.exe herunterheladen und in bin-Verzeichnis abgelegt. Anschliessend habe ich diese exe-Datei ausgeführt, womit Tomcat als Dienst installiert werden konnte. Jetzt funktioniert alles wie erwartet. Was mit Tomcat-7.0.32 ist ...

Vielen Dank an alle.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Apache Proxy Weiterleitung auf Tomcat funktioniert nicht wie gewünscht Allgemeine Java-Themen 1
M tomcat probleme Allgemeine Java-Themen 1
M pfx-Zertifikat in Tomcat für SSL-Verschlüsselung nutzen Allgemeine Java-Themen 14
W JSP / Tomcat / Filter / Preprocessing Allgemeine Java-Themen 7
G Embedded Tomcat (war vs. jar) Allgemeine Java-Themen 6
R Tomcat startet nicht Allgemeine Java-Themen 1
X Tomcat checkParachute Allgemeine Java-Themen 1
X Encoding in Tomcat Allgemeine Java-Themen 2
X Performance für Tomcat / Apache optimieren Allgemeine Java-Themen 2
A Java Klasse auf Tomcat während der Laufzeit austauschen Allgemeine Java-Themen 1
N Schulung zu Tomcat/JSP/Struts gesucht Allgemeine Java-Themen 0
P Tomcat Deploy path Allgemeine Java-Themen 2
reibi Classpath Classpath Variable beim Tomcat Allgemeine Java-Themen 2
HarleyDavidson Tomcat VS Windows Scheduled Task Allgemeine Java-Themen 4
L Java Version aus Tomcat ermitteln Allgemeine Java-Themen 3
D Tomcat/Derby Webapp Allgemeine Java-Themen 7
2 JPA und Tomcat Allgemeine Java-Themen 4
S Tomcat java.util.logging - keine Logs Allgemeine Java-Themen 12
S Mac Adresse aus Tomcat Allgemeine Java-Themen 7
H Tomcat: JVM Crash ntdll.dll Allgemeine Java-Themen 2
I Problem mit Tomcat der URL Allgemeine Java-Themen 5
Mr.Isaaaac Tomcat Proxy Einstellungen, hä? Allgemeine Java-Themen 3
P OpenGts,Java,Ant, tomcat Allgemeine Java-Themen 8
T Wie Hibernate im Tomcat installieren? Allgemeine Java-Themen 2
E Einfaches Problem mit Tomcat Allgemeine Java-Themen 18
E welche standalone Version von Tomcat benutzen? Allgemeine Java-Themen 6
S Zwei Anwendungen unter Tomcat Allgemeine Java-Themen 4
S "Guessed User name" bei Tomcat belegen Allgemeine Java-Themen 2
G Servlet über apache Tomcat ansprechen Allgemeine Java-Themen 6
L Tomcat cache Allgemeine Java-Themen 10
L Tomcat erkennt Share nicht Allgemeine Java-Themen 6
H Tomcat VM out of memory Allgemeine Java-Themen 7
M TomCat Login Allgemeine Java-Themen 19
F Was tun bei der Exception? SW: hbernate, tomcat, postgresql Allgemeine Java-Themen 4
I Tomcat, Lucene, Probleme Allgemeine Java-Themen 4
Y PDF Report mit Tomcat Heap Space Problem Allgemeine Java-Themen 9
J Suse + Tomcat + Sysdeo Plugin: Tomcat als user starten Allgemeine Java-Themen 2
franzi Tomcat acceptCount Allgemeine Java-Themen 1
G Tomcat ResourceBundle Allgemeine Java-Themen 7
V Java/Tomcat auf Virtual Server Allgemeine Java-Themen 11
M Java, PHP und Tomcat Allgemeine Java-Themen 4
P Classpath, Tomcat und Eclipse Allgemeine Java-Themen 4
M Java Webserver - Tomcat alleine oder zusammen mit Apache? Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben