Где разместить META-INF/services/java.sql.Driver в веб-приложении
javadoc говорит: "загрузить класс my.sql.Driver, файл META-INF/services/java.sql.Driver будет содержать запись: my.sql.Driver".
У webapps обычно есть папка META-INF как родной брат WEB-INF? Однако спецификации JPA ищут persistence.xml в WEB-INF/classes/META-INF/.
Какое место верно для служб /java.sql.Driver?
Кстати, я получаю "Нет подходящего драйвера" с ним в обоих местах.
Ответы
Ответ 1
Вы не должны предоставлять его сами. JAR файл JDBC-драйвера должен уже содержать его. По крайней мере, если это JDBC 4.0 совместимый драйвер. Это также явно указано в javadoc DriverManager
:
Методы DriverManager
getConnection
и getDrivers
были расширены для поддержки механизма Java my.sql.Driver
Приложениям больше не нужно явно загружать драйверы JDBC с помощью Class.forName()
. Существующие программы, которые в настоящее время загружают драйверы JDBC с помощью Class.forName()
, будут продолжать работать без изменений.
Если у вас их нет, то, по-видимому, он не является совместимым с JDBC драйвером. Вам необходимо явно загрузить драйвер самостоятельно или обновить драйвер JDBC 4.0 или просто использовать управляемый контейнером DataSource
(который предлагает больше преимуществ, например пул соединений).