0

我正在构建一个使用 JDBC 连接到 MySQL 的 java 应用程序。我有一个 ant 脚本,它编译我的代码,然后将它与 log4j、junit、libshout-java 和 mysql jdbc 驱动程序一起打包到一个可执行 jar 中。这一切在 ubuntu 9.10 上运行良好,我的代码连接到 mysql,然后我们就走了。

但是,我的生产环境将是 solaris(我的开发盒是 ubuntu),当我在那里构建和运行它时,我遇到了以下错误。

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)

我的 mysql 数据库语言环境在 solaris 上是 en_US,但我的 ubuntu mysql 数据库也是 en_US。

有人有什么想法吗?

我不确定还需要什么其他信息,所以如果您想了解更多信息,请在评论中告诉我。

包装好的罐子

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 版本:MySQL 5.1.30

干杯

标记

4

2 回答 2

0

错误说:

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

因此,目前您似乎正在澳大利亚地区运行

我认为您应该首先尝试将语言环境切换到 en_US 并尝试它是否有效。

[编辑] 另外请确保存储 mysql 连接器/驱动程序的路径不包含任何非法字符。请参阅此链接

于 2010-01-10T08:49:35.530 回答
0

我认为这个惊喜的原因,惊喜,用户错误:)

我从源代码的 lib 目录中删除了任何 mysql jdbc,然后将 opensolaris 附带的 mysql jdbc 连接器(看起来来自 sun studio)放在 java 的 lib/ext 中。一旦我这样做了,这一切似乎都奏效了。仔细检查后,我想我的类路径中可能仍然有 ubuntu mysql JDBC 驱动程序,而且很可能在跨平台 jar 之前。所以我怀疑这是问题所在。

感谢你的帮助!

标记。

于 2010-01-13T01:15:43.843 回答