Hallo,
mein Java-Programm soll sich mit einer Firebird Datenbank, die auf einem Rechner im lokalen Netzwerk liegt verbinden. Solange sich mein Java-Programm hier auf meinem Windows-Rechner befindet und läuft, funktioniert das ganze. Muss sich wohl um ein Linux-Problem handeln oder? Kennt sich da jemand aus?
Hier der Inhalt der Funktion, die letztendlich aufgerufen wird:
[java=352]
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
String query = "";
try
{
System.out.print("Lade Klasse...");
Class.forName("org.firebirdsql.jdbc.FBDriver");
System.out.println("ok.");
System.out.print("Verbinde mit Datenbank im lokalen Netzwerk...");
con = DriverManager.getConnection(db_URL,db_User,db_PW);
System.out.println("ok.");
stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
query = "SELECT * FROM Personen";
rs = stmt.executeQuery(query);
//...
}
catch (SQLException e)
{
System.out.println(query + "\n\n");
e.printStackTrace(System.out);
throw e;
}
catch (ClassNotFoundException e)
{
e.printStackTrace();
}
[/code]
Und hier die Ausgabe in der Konsole:
Wie man erkennen kann, geht die Zeile mit dem Class.forName ohne Probleme durch, aber erst bei con = DriverManager.getConnection(db_URL,db_User,db_PW); kommt die Exception.
Weiß jemand Rat?
MfG
mein Java-Programm soll sich mit einer Firebird Datenbank, die auf einem Rechner im lokalen Netzwerk liegt verbinden. Solange sich mein Java-Programm hier auf meinem Windows-Rechner befindet und läuft, funktioniert das ganze. Muss sich wohl um ein Linux-Problem handeln oder? Kennt sich da jemand aus?
Hier der Inhalt der Funktion, die letztendlich aufgerufen wird:
[java=352]
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
String query = "";
try
{
System.out.print("Lade Klasse...");
Class.forName("org.firebirdsql.jdbc.FBDriver");
System.out.println("ok.");
System.out.print("Verbinde mit Datenbank im lokalen Netzwerk...");
con = DriverManager.getConnection(db_URL,db_User,db_PW);
System.out.println("ok.");
stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
query = "SELECT * FROM Personen";
rs = stmt.executeQuery(query);
//...
}
catch (SQLException e)
{
System.out.println(query + "\n\n");
e.printStackTrace(System.out);
throw e;
}
catch (ClassNotFoundException e)
{
e.printStackTrace();
}
[/code]
Und hier die Ausgabe in der Konsole:
Code:
Lade Klasse...ok.
Verbinde mit Datenbank im lokalen Netzwerk...Exception in thread "Thread-3" java.lang.NoClassDefFoundError: org.firebirdsql.jdbc.FBConnection
at java.lang.Class.initializeClass(libgcj.so.81)
at java.lang.Class.forName(libgcj.so.81)
at java.lang.Class.forName(libgcj.so.81)
at org.firebirdsql.gds.ClassFactory.get(ClassFactory.java:61)
at org.firebirdsql.gds.impl.wire.WireGDSFactoryPlugin.getConnectionClass(WireGDSFactoryPlugin.java:29)
at org.firebirdsql.gds.impl.GDSFactory.getConnectionClass(GDSFactory.java:334)
at org.firebirdsql.jca.FBManagedConnectionFactory.newConnection(FBManagedConnectionFactory.java:826)
at org.firebirdsql.jca.FBManagedConnection.getConnection(FBManagedConnection.java:482)
at org.firebirdsql.jca.FBStandAloneConnectionManager.allocateConnection(FBStandAloneConnectionManager.java:73)
at org.firebirdsql.jdbc.FBDataSource.getConnection(FBDataSource.java:119)
at org.firebirdsql.jdbc.FBDriver.connect(FBDriver.java:131)
at java.sql.DriverManager.getConnection(libgcj.so.81)
at java.sql.DriverManager.getConnection(libgcj.so.81)
at VerbindungsAufbauThread.getMapping(Test.java:362)
at VerbindungsAufbauThread.run(Test.java:251)
Caused by: java.lang.ClassNotFoundException: java.sql.SQLClientInfoException not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:/home/Test/lib/jaybird-full-2.1.5.jar,file:/home/Test/bin/], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
at java.net.URLClassLoader.findClass(libgcj.so.81)
at gnu.gcj.runtime.SystemClassLoader.findClass(libgcj.so.81)
at java.lang.ClassLoader.loadClass(libgcj.so.81)
at java.lang.ClassLoader.loadClass(libgcj.so.81)
at java.lang.Class.forName(libgcj.so.81)
at java.lang.Class.initializeClass(libgcj.so.81)
...14 more
Wie man erkennen kann, geht die Zeile mit dem Class.forName ohne Probleme durch, aber erst bei con = DriverManager.getConnection(db_URL,db_User,db_PW); kommt die Exception.
Weiß jemand Rat?
MfG