簡體   English   中英

在網絡應用程序中放置META-INF / services / java.sql.Driver的位置

[英]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方法getConnectiongetDrivers已得到增強,可支持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.

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