Доступ к IBM DVM(менеджеру виртуализации данных) из Linux Unbuntu vm с помощью Python
Я пытаюсь получить доступ к IBM DVM(менеджеру виртуализации данных) из Linux Unbuntu vm с помощью Python.
Я установил JAVA на машину с unbuntu: java -version
версия openjdk «1.8.0_362» Среда выполнения OpenJDK (сборка 1.8.0_362-b08) 64-разрядная серверная виртуальная машина OpenJDK (сборка 25.362-b08, смешанный режим)
Я также установил JayDeBeAPI: pip install JayDeBeApi
Установка собранных пакетов: package, JPype1, JayDeBeApi Успешно установлен JPype1-1.4.1 JayDeBeApi-1.2.3 package-23.0
С веб-сайта IBM я загрузил драйвер DVM-JDBC3.1.
https://ak-delivery04-mul.dhe.ibm.com/sar/CMA/IMA/0bb4c/0/dvm-jdbc-3.1.202303130554.zip Разархивирован в /opt/dvm-jdbc-3.1.202303130554.
Я также установил путь к классу:echo $CLASSPATH
/opt/dv-jdbc-3.1.202303130554:/opt/dv-jdbc-3.1.202303130554/dv-jdbc-3.1.202303130554.jar:
Теперь я пытаюсь запустить следующий код Python для подключения к DVM.
импортировать jpype
импортировать Джейдебеапи
dvm_driver_path = "/opt/dv-jdbc-3.1.202303130554/dv-jdbc-3.1.202303130554.jar"
jpype.addClassPath('/opt/dv-jdbc-3.1.202303130554/dv-jdbc-3.1.202303130554.jar') jpype.startJVM(jpype.getDefaultJVMPath(), "-Djava.class.path=%s" % ( '/opt/dv-jdbc-3.1.202303130554/dv-jdbc-3.1.202303130554.jar'))
conn = jaydebeapi.connect('com.rs.jdbc.dv.DvDriver.class', 'jdbc:dv://###:##/###', {'user': '##### ', 'пароль': '####'},'/opt/dv-jdbc-3.1.202303130554/dv-jdbc-3.1.202303130554.jar')
if (conn):print('Подключено')else:print('Не удалось подключиться')
но я получаю следующую ошибку: python3 dvm-jdbc.py Traceback (последний последний вызов): Файл "/opt/dv-jdbc-3.1.202303130554/dvm-jdbc.py", строка 26, в conn = jaydebeapi. Connect('com.rs.jdbc.dv.DvDriver.class' , файл "/home/sanika/.local/lib/python3.10/site-packages/jaydebeapi/init .py", строка 412, в Connect jconn = _jdbc_connect(jclassname, url, driver_args, jars, libs) Файл "/home/sanika/.local/lib/python3.10/site-packages/jaydebeapi/init .py", строка 221, в _jdbc_connect_jpype jpype.JClass(jclassname ) Файл «/home/sanika/.local/lib/python3.10/site-packages/jpype/_jclass.py», строка 99, в новом возврате _jpype._getClass(jc) TypeError: Class com.rs.jdbc.dv. DvDriver.class не найден
Мой класс водителя неправильный? Если да, то какой правильный?
1 ответ
Правильное имя класса должно быть «com.rs.jdbc.dv.DvDriver», поэтому ваша линия подключения должна быть
conn = jaydebeapi.connect('com.rs.jdbc.dv.DvDriver', 'jdbc:dv://###:##/###', {'user': '#####', 'password': '####'}, '/opt/dv-jdbc-3.1.202303130554/dv-jdbc-3.1.202303130554.jar')
также убедитесь, что путь к драйверу JDBC правильный, потому что вы упоминаете/opt/dvm-jdbc-3.1.202303130554
и/opt/dv-jdbc-3.1.202303130554
в вашем коде.