簡體   English   中英

從內存HikariCP運行.jar時,MySQL MissingResourceException

[英]MySQL MissingResourceException when running .jar from memory HikariCP

我創建了一個客戶端程序,該程序使用Netty以便通過TCP套接字下載.jar並創建JarInputStream的新實例

當我初始化程序時,一切都會加載,直到它拋出MissingResourceException時連接數據庫為止。

通常通過終端/命令提示符運行時,原始的jar(可發送低端netty的jar)運行良好。 我認為這至少不是我的代碼中的問題。

我正在使用HikariCP進行數據庫池化,並且在連接到數據庫時會向我拋出以下堆棧跟蹤信息:

Caused by: java.lang.ExceptionInInitializerError
    at com.mysql.jdbc.ConnectionPropertiesImpl.<clinit>(ConnectionPropertiesImpl.java:586)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at java.lang.Class.newInstance(Class.java:374)
    at com.zaxxer.hikari.util.UtilityElf.createInstance(UtilityElf.java:117)
    at com.zaxxer.hikari.pool.PoolUtilities.initializeDataSource(PoolUtilities.java:110)
    at com.zaxxer.hikari.pool.BaseHikariPool.<init>(BaseHikariPool.java:157)
    at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:60)
    at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:48)
    at com.zaxxer.hikari.HikariDataSource.<init>(HikariDataSource.java:80)
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 nl_NL
    at com.mysql.jdbc.Messages.<clinit>(Messages.java:54)
    ... 38 more
Caused by: java.util.MissingResourceException: Can't find bundle for base name com.mysql.jdbc.LocalizedErrorMessages, locale nl_NL
    at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1499)
    at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1322)
    at java.util.ResourceBundle.getBundle(ResourceBundle.java:721)
    at com.mysql.jdbc.Messages.<clinit>(Messages.java:52)
    ... 38 more

我正在使用:

mysql-connector-java:5.1.37 HikariCP-java6:2.3.12

我可以確認LocalizedErrorMessages.properties文件確實在com / mysql / jdbc中。

我正在使用的類加載器: http://pastebin.com/9VsV32Yg : http://pastebin.com/9VsV32Yg

從終端/命令提示符執行時,原始jar運行良好。 原始jar中的入口點已在我的TCP應用程序中正確執行,因為我可以看到它的啟動輸出出現在控制台中。

希望有人知道導致問題的原因。

您需要實現公共URL getResource(String name)和其他各種資源API。 ClassLoader不僅可以加載類,還可以訪問JAR中包含的其他資源。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM