Не удается получить SQL, работающий в Java WebApp, над которым я работаю. Кажется, проблема связана с трикотажем, не загружающим мой SQL-драйвер.Java + Jersey + Gradle - java.sql.SQLException: Не найдено подходящего драйвера
Получение java.sql.SQLException: Не найдено подходящего драйвера для jdbc: h2: testDbName, когда я вызываю свою конечную точку.
Обратите внимание, что:
строка подключения действует и работает, когда не работают в контейнер сервлетов.
Gradle скрипт настроен правильно установить sqldriver (h2 в этом случае ) в Lib каталоге
я упростил код к следующему:
TestResource.java
@Path("/user")
public class TestResource {
@POST
@Path("/add")
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public Response createForm(@FormParam("name") String name) throws Exception{
Connection connection = DriverManager.getConnection("jdbc:h2:testDbName");
connection.close();
return Response.status(SC_ACCEPTED).build();
}
}
build.gradle
apply plugin: 'war'
repositories {
mavenCentral()
}
dependencies {
compile 'javax.servlet:servlet-api:2.5'
compile "javax.ws.rs:jsr311-api:1.1.1"
compile 'com.sun.jersey:jersey-bundle:1.19'
compile 'com.h2database:h2:1.3.175'
}
webapp.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<servlet>
<servlet-name>Jersey</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>testPackage</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Jersey</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
Попробуйте явно загрузки драйвера и посмотреть, что происходит 'Class.forName ("org.h2.Driver")' –
Да, что установил его - я поставил статическую { DriverManager.registerDriver (новый org.h2 .Driver()) } в мой код .. Кажется очень вонючим, хотя – vicsz
@vicjugador почему вонючий? Вот как это работает в java, вам нужно загрузить драйвер. – Opal