2016-05-13 12 views
1

Aus irgendeinem Grund, wenn ich benutze:log4jdbc Kraft Rückkehr ConnectionSpy Fahrer

connection = DriverManager.getConnection("jdbc:log4jdbc:derby:/home/user/mydb"); 

Ich neige dazu, wieder unterschiedliche Verbindungen zu bekommen. In diesem Fall ist es eine Mischung zwischen:

  1. connection = (org.apache.derby.impl.jdbc.EmbedConnection) [email protected] (XID = 598), (SESSIONID = 1), (DATABASE = /home/user/mydb), (DRDAID = null) - Was ich will nicht

und:

  1. connection = (net.sf.log4jdbc.ConnectionSpy) [email protected] - was ich will

Um genauer zu sein, wenn ich eine public static void main Methode ausgeführt werden, mit dann funktioniert es und ich zurück #2 aber wenn ich laufe die gleiche Code nach dem Starten der Web-Anwendung starten, dann bekomme ich #1.

Gibt es eine Möglichkeit, log4jdbc zu zwingen, immer net.sf.log4jdbc.ConnectionSpy zurückzugeben?

+0

Vielleicht haben Sie einen anderen CLASSPATH in den verschiedenen Fällen? Vielleicht laufen Sie in den verschiedenen Fällen mit einem anderen JDK? Vielleicht haben Sie in einem Fall einen anderen Satz von JDBC-Treibern mit DriverManager registriert als im anderen Fall? –

+0

Nein, dasselbe Projekt, gleicher Code, gleiche Methode sogar. Der einzige Unterschied ist der, wo ich die Datei führe, wo ich das Projekt ausführe. – Hooli

Antwort

0

Ich fand es heraus. Sie können die Verbindung auf diese Weise erzwingen:

Connection temp = DriverManager.getConnection("jdbc:log4jdbc:derby:/home/user/mydb"); 
connection = new net.sf.log4jdbc.ConnectionSpy(temp);