[英]Where to put META-INF/services/java.sql.Driver in web app
javadoc說“要加載my.sql.Driver類,META-INF / services / java.sql.Driver文件將包含條目:my.sql.Driver”。
Web應用程序通常沒有META-INF文件夾作為WEB-INF的兄弟嗎? 但是,JPA規范正在WEB-INF / classes / META-INF /中尋找persistence.xml。
哪個地方對於services / java.sql.Driver是正確的?
順便說一下,我在兩個地方都得到了“No suitable Driver”例外。
你不應該自己提供。 JDBC驅動程序JAR文件應該已包含它。 至少,如果它是JDBC 4.0兼容的驅動程序。 這在DriverManager
javadoc中也明確提到:
DriverManager
方法getConnection
和getDrivers
已得到增強,可支持Java Standard Edition Service Provider機制。 JDBC 4.0驅動程序必須包含文件META-INF/services/java.sql.Driver
。 此文件包含java.sql.Driver
的JDBC驅動程序實現的名稱。 例如,要加載my.sql.Driver
類,META-INF/services/java.sql.Driver
文件將包含以下條目:my.sql.Driver
應用程序不再需要使用
Class.forName()
明確加載JDBC驅動程序。 當前使用Class.forName()
加載JDBC驅動程序的現有程序將繼續工作而無需修改。
如果你沒有,那么它顯然不是JDBC 4.0兼容的驅動程序。 您需要自己顯式加載驅動程序,或者升級到JDBC 4.0兼容的驅動程序,或者只使用容器管理的DataSource
(它提供了更多優勢,例如連接池)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.