В приложении Vert.x (работающем в Windows 10) я пытаюсь использовать клиент JDBCC для подключения к Microsoft SQL Server 2008 R2.
Это шаги, которые я делал до сих порДля этого:
- Загрузите драйвер JDBC из https://www.microsoft.com/en-us/download.
- Установите переменную среды
CLASSPATH=<path>/mssql-jdbc7.0.0.jre8.jar
- Добавьте зависимости для клиента JDBC и драйвера jdbcв файл pom.xml.
- Скомпилируйте приложение с помощью команды:
mvn clean package
из домашнего проекта - Запустите приложение с
java -jar ./target/<app-name>-SNAPSHOT-fat.jar
Вот приложение pom.зависимость xml:
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-jdbc-client</artifactId>
</dependency>
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>7.0.0.jre8</version>
</dependency>
и фрагмент кода для создания клиента и получения соединения:
JDBCClient client = JDBCClient.createShared(
vertx,
new io.vertx.core.json.JsonObject()
.put("url", "jdbc:sqlserver://192.168.1.180;databaseName=<dbname>;user=<usr>;password=<psw>")
.put("driver_class", "com.microsoft.sqlserver.jdbc.SQLServerDriver")
);
client.getConnection(res -> {
if (res.succeeded())
System.out.println("Connection opened");
else {
try {
System.out.println("Connection failed");
throw res.cause();
} catch (Throwable e) {System.out.println(e.getMessage());}
}
});
После запуска приложения появляется следующая ошибка:
>java -jar .\target\mssql-1.0.0-SNAPSHOT-fat.jar
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.SecurityException: Invalid signature file digest for Manifest main attributes
at sun.security.util.SignatureFileVerifier.processImpl(Unknown Source)
at sun.security.util.SignatureFileVerifier.process(Unknown Source)
at java.util.jar.JarVerifier.processEntry(Unknown Source)
at java.util.jar.JarVerifier.update(Unknown Source)
at java.util.jar.JarFile.initializeVerifier(Unknown Source)
at java.util.jar.JarFile.ensureInitialization(Unknown Source)
at java.util.jar.JavaUtilJarAccessImpl.ensureInitialization(Unknown Source)
at sun.misc.URLClassPath$JarLoader$2.getManifest(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Кто-то может сказать мне, что я не прав?