Я сейчас тыкаю REST-серверы с помощью maven (jersey-grizzly2-quickstart archetype, ничего шикарного). И, очевидно, я делаю что-то не так с точки зрения управления библиотеками, так как не могу установить соединение JDBC внутри службы. Он выбрасывает «Не найден подходящий драйвер для jdbc: oracle: thin: @ ...». Между тем я могу подключиться к этой базе данных из обычного Java-приложения просто отлично. Я совершенно не понимаю, как отследить корень проблемы ... Зависимость от ojdbc7 указана в файле pom.xml как
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc7</artifactId>
<version>12.1.0.1</version>
</dependency>
, который выглядит законным. Это может быть простое столкновение версий, но, как я уже сказал, я не знаю, как правильно проверить эти вещи ...
Что касается шагов воспроизведения:
1) в пределах некоторого dummydirectory попросите maven
mvn archetype:generate -DarchetypeArtifactId=jersey-quickstart-grizzly2 -DarchetypeGroupId=org.glassfish.jersey.archetypes -DinteractiveMode=false -DgroupId=com.example.rest -DartifactId=jersey-service -Dpackage=com.example.rest -DarchetypeVersion=2.17
2) добавить
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@144.21.77.27:1521:orcl", "", "");
строка для класса MyResource, сгенерированного maven (Connection and DriverManager из пакета библиотеки javax.ws.rs, эта база данных - моя песочница в облаке оракула).
3) Затем запустите сервер с
mvn clean compile
mvn exec:java
4) засвидетельствуйте проблему самостоятельно (при доступе к странице возвращается «Не найден подходящий драйвер для jdbc: oracle: thin: @ ...»)