Frage

Ich baue eine Java -Anwendung, mit der JDBC eine Verbindung zu MySQL herstellt. Ich habe ein Ameisenskript, das meinen Code kompiliert und ihn dann zusammen mit Log4j, Junit, Libhout-Java und dem MySQL JDBC-Treiber in ein ausführbares Glas verpackt. Das alles funktioniert bei Ubuntu 9.10 gut, und mein Code stellt eine Verbindung zu MySQL und weg. Wir gehen.

Mein Produktionsumfeld wird jedoch Solaris sein (meine Dev -Box ist Ubuntu) und als ich dort baute und dort leitete, hatte ich die folgenden Fehler.

17 [main] DEBUG com.radiobusi.ShoutGen.ParseConfig  - [SQL, SELECT * FROM RadioBusi.RadioBusi_song JOIN RadioBusi.RadioBusi_playlist WHERE RadioBusi_playlist.Name = 'Placebo 2';]
18 [main] DEBUG com.radiobusi.ShoutGen.ParseConfig  - this is able to be broken up[SQL, SELECT * FROM RadioBusi.RadioBusi_song JOIN RadioBusi.RadioBusi_playlist WHERE RadioBusi_playlist.Name = 'Placebo 2';]
78 [main] ERROR com.radiobusi.ShoutGen  - An error occured instantiating the class ShoutGen
java.lang.ExceptionInInitializerError
        at com.mysql.jdbc.Util.stackTraceToString(Util.java:351)
        at com.mysql.jdbc.Util.<clinit>(Util.java:116)
        at com.mysql.jdbc.NonRegisteringDriver.parseURL(NonRegisteringDriver.java:672)
        at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:277)
        at java.sql.DriverManager.getConnection(DriverManager.java:582)
        at java.sql.DriverManager.getConnection(DriverManager.java:185)
        at com.radiobusi.ShoutGen.PlayList.<init>(Unknown Source)
        at com.radiobusi.ShoutGen.ShoutGen.<init>(Unknown Source)
        at com.radiobusi.ShoutGen.ShoutGen.main(Unknown Source)
Caused by: java.lang.RuntimeException: Can't load resource bundle due to underlying exception java.util.MissingResourceException: Can't find bundle for base name com.mysql.jdbc.LocalizedErrorMessages, locale en_AU
        at com.mysql.jdbc.Messages.<clinit>(Messages.java:60)
        ... 9 more
Caused by: java.util.MissingResourceException: Can't find bundle for base name com.mysql.jdbc.LocalizedErrorMessages, locale en_AU
        at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1521)
        at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1260)
        at java.util.ResourceBundle.getBundle(ResourceBundle.java:715)
        at com.mysql.jdbc.Messages.<clinit>(Messages.java:58)
        ... 9 more
Exception in thread "main" java.lang.NullPointerException
        at com.radiobusi.ShoutGen.ShoutGen.main(Unknown Source)

Mein MySQL -Datenbank -Gebietsschema ist en_us auf Solaris, aber meine Ubuntu Mysql -Datenbank ist auch die EN_US.

Hat jemand eine Idee?

Ich bin mir nicht sicher, welche anderen Informationen erforderlich sind. Wenn Sie also weitere Informationen möchten, lassen Sie es mich in den Kommentaren wissen.

Gläser, die verpackt werden

junit-4.8.1.jar
libshout.jar
log4j-1.2.15.jar
mysql-5.1.6.jar

munderwo@opensolaris:~/ShoutGen-Java$ uname -a
SunOS opensolaris 5.11 snv_111b i86pc i386 i86pc Solaris

MySQL Version: MySQL 5.1.30

Prost

Markieren

War es hilfreich?

Lösung 2

Ich denke, der Grund für diese Überraschung, Überraschung, Benutzerfehler :)

Ich habe jeden MySQL JDBC aus meinem Lib -Verzeichnis in meinem Quellcode entfernt und dann den MySQL JDBC -Anschluss, der mit OpenSolaris geliefert wurde (aussieht, als wäre es von Sun Studio gekommen) in Lib/Ext von Java ausgestattet. Sobald ich das tat, schien alles zu funktionieren. Bei näherer Betrachtung hätte ich vielleicht noch den Ubuntu Mysql JDBC-Treiber auf meinem Klassenweg und möglicherweise vor dem plattformübergreifenden Glas gehabt. Ich vermute also, dass dies das Problem war.

Danke für deine Hilfe!

Markieren.

Andere Tipps

Der Fehler sagt:

Can't find bundle for base name com.mysql.jdbc..., locale en_AU

Es scheint also, dass Sie derzeit im australischen Gebietsschema laufen

Ich denke, Sie sollten zuerst versuchen, das Gebietsschema auf eN_us zu wechseln und zu versuchen, ob es funktioniert.

Bearbeiten] Bitte stellen Sie außerdem sicher, dass der Pfad, in dem Ihr MySQL -Anschluss/der Treiber gespeichert ist, keine illegalen Zeichen enthält. Sieh dir das an Verknüpfung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top