AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Fehlermeldung bei Verwendung von InterClient 7.5.1 mit Java 8
Thema durchsuchen
Ansicht
Themen-Optionen

Fehlermeldung bei Verwendung von InterClient 7.5.1 mit Java 8

Ein Thema von mjustin · begonnen am 26. Jan 2015 · letzter Beitrag vom 19. Mär 2015
Antwort Antwort
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#1

Fehlermeldung bei Verwendung von InterClient 7.5.1 mit Java 8

  Alt 26. Jan 2015, 14:32
Datenbank: InterBase • Version: 7.5.1 • Zugriff über: JDBC
Hallo,

setzt noch jemand InterBase 7.5.1 ein und greift darauf auch über den InterClient JDBC Treiber zu?

Mit Java 8 scheint der InterClient 7.5.1 Treiber nicht mehr kompatibel zu sein, beim Verbindungsversuch erfolgt eine Exception:

Code:
Exception in thread "main" java.lang.NoClassDefFoundError: sun/io/ByteToCharConverter
   at interbase.interclient.Connection.connect(Unknown Source)
   at interbase.interclient.Connection.<init>(Unknown Source)
   at interbase.interclient.Driver.connect(Unknown Source)
   at java.sql.DriverManager.getConnection(DriverManager.java:664)
   at java.sql.DriverManager.getConnection(DriverManager.java:247)
   at com.example.so25365952.Main.main(Main.java:14)
Caused by: java.lang.ClassNotFoundException: sun.io.ByteToCharConverter
   at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
   at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
   at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
   at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
   at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
   ... 6 more
Die vermisste Klasse sun/io/ByteToCharConverter gehört zu den "interne" Sun-Klassen. In Java 7 ar sie als deprecated gekennzeichnet, in Java 8 nun wurde sie entfernt. (Eine interne Klasse zu verwenden ist schlechter Stil, da sie nicht Teil der offiziellen Java API sind, und die Anwendung an eine spezifische JRE binden, in diesem Fall die von Sun).

Da Oracle den Java 7 Support im April einstellen wird, wird eine Entscheidung notwendig sein:
  • den InterBase 7.5.1 Server auf XE umstellen?
  • den Datenbankzugriff von JDBC auf etwas anderes umstellen?

Die erste Option würde sehr, sehr teuer werden. Die zweite würde den Einsatz einer anderen Zugriffsmethode (ODBC über Java?) erfordern und auch einigen Aufwand bedeuten. Daher wären praktikable Ideen willkommen
Michael Justin

Geändert von mjustin (26. Jan 2015 um 14:35 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Fehlermeldung bei Verwendung von InterClient 7.5.1 mit Java 8

  Alt 26. Jan 2015, 14:44
7.5.1 - Hier sollte Emba nachbessern. Es kann ja wohl nicht sein das hier ein vor 10 Jahren releaste Version nicht mehr mit der aktuellsten Java-Version kompatible ist. Es ist eine Schande das Borland das Sie (wie vermutlich 1000 andere Entwickler auch wegen fehlender Alternativen im SDK (?) ein eigentlich nicht für extern Verwendung vorhandene Klasse verwendet haben. Hier wird ein Hotfix erwartet!

Spaß beiseite.
Ich sehe Punkt 1 als anzustreben. Wenn du nicht kontrollieren kannst welche Java-Version auf den Kisten auf denen du per JDBC zugreifst solltest du dir überlegen nicht mehr diese Uralte Version einzusetzen. Die gefahr ist hier sehr groß das du zwar Punkt 2 realisierst aber in 2 Monaten ein anderes Update dein System explodieren lässt.
Ob nun es nach Interbase XE, Firebird oder "HyperSuperNeuesDB-System" geht sollte egal sein. FB dürfte noch am einfachsten sein.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#3

AW: Fehlermeldung bei Verwendung von InterClient 7.5.1 mit Java 8

  Alt 26. Jan 2015, 15:18
Wenn du nicht kontrollieren kannst welche Java-Version auf den Kisten auf denen du per JDBC zugreifst solltest du dir überlegen nicht mehr diese Uralte Version einzusetzen.
Es handelt sich nur um wenige interne Server, die daher unter totaler Kontrolle sind. Bei einer simplen Klasse wie ByteToCharConverter ist es kaum Aufwand, sie durch eine der neueren "offiziellen" Klassen in Java zu ersetzen, dazu benötigt man allerdings den InterClient Quellcode. Ob der noch auf irgendeinem Datenträger gespeichert ist, das ist eine andere Frage
Michael Justin
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Fehlermeldung bei Verwendung von InterClient 7.5.1 mit Java 8

  Alt 26. Jan 2015, 15:42
Bei einer simplen Klasse wie ByteToCharConverter ist es kaum Aufwand, sie durch eine der neueren "offiziellen" Klassen in Java zu ersetzen, dazu benötigt man allerdings den InterClient Quellcode.
Diesen "kaum Aufwand" höhre ich auch immer ...

Ob der noch auf irgendeinem Datenträger gespeichert ist, das ist eine andere Frage
Die Datenträger wird es schon geben. Eher das Build-System bzw. eine umgebung um das per Knopfdruck zu übersetzen wird nicht mehr existieren.
Unsere Versionen vor 10 Jahren würden wir jetzt auch nicht in 2 Minuten wieder herstellen können.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#5

AW: Fehlermeldung bei Verwendung von InterClient 7.5.1 mit Java 8

  Alt 26. Jan 2015, 16:02
Eher das Build-System bzw. eine umgebung um das per Knopfdruck zu übersetzen wird nicht mehr existieren.
Da der InterClient JDBC Treiber nur eine JAR Datei ist, werden nur die Standard JDK Werkzeuge javac und jar benötigt, um die Handvoll Java Klassen zu kompilieren und die class Dateien als JAR zu verpacken, das ist ein zweizeiliges Skript.
Michael Justin
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#6

AW: Fehlermeldung bei Verwendung von InterClient 7.5.1 mit Java 8

  Alt 19. Mär 2015, 15:06
Neuere InterBase Treiber sind zwar mit Java 8 anscheinend einsetzbar, melden beim Versuch auf eine 7.5.1 Datenbank zuzugreifen eine interbase.interclient.UnlicensedComponentException , wie zum Beispiel hier berichtet wird: http://stackoverflow.com/questions/2...-interclient-j

Mit der aktuellen Developer Edition von InterBase XE7 konnte ich das auch reproduzieren. Die Developer Edition hat normalerweise ausser dem automatischen Neustart des Servers keine Einschränkungen, mit einer "Unlicensed Component Exception" hatte ich daher eigentlich nicht gerechnet. Ob diese Hürde genommen werden kann, und danach ein Einsatz des XE7 JDBC Treibers mit einem 7.5.1 Server möglich ist, werde ich bei Gelegenheit bei EMBA anfragen.
Michael Justin
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz