Где разместить 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 (который предлагает больше преимуществ, например пул соединений).