Ошибка при генерации DDL-скриптов для БД Oracle

При попытке сгенерировать DDL-скрипты, выбирая в меню CUBA -> Generate Database Scripts… получаю “Studio Error”: > Studio Error

  	java.lang.RuntimeException: Cannot generate update scripts
  	See log file for details (/home/sb/.IntelliJIdea2019.2/system/log/idea.log)

В логе:

Caused by: java.sql.SQLException: Неподдерживаемая кодовая таблица (добавьте orai18n.jar в маршрут классов): CL8MSWIN1251
	at oracle.sql.CharacterSetUnknown.failCharsetUnknown(CharacterSetFactoryThin.java:233)

Используется БД ORACLE с кодовой таблицей CL8MSWIN1251.

При запуске в Томкате была такая же ошибка, которая легко решается добавлением orai18n.jar в deploy/tomcat/lib вместе с jdbc-драйвером oracle.
Но куда правильно добавить orai18n.jar для того, чтобы ее подхватила утилита создания скриптов БД из Cuba-Studio?

Не пробовали его положить туда же, где у вас лежит ojdbc6.jar или ojdbc8.jar?

Архив с jdbc драйвером для Oracle Database 19.3 скачан с официального сайта и распакован в /home/sb/dev/jdbc. В архиве помимо прочих файлов содержатся ojdbc10.jar и orai10n.jar. Так что лежат они вместе. Другое дело, что эта папка ни в какие класспасы не попадает.
Далее, в настройках датасорса в cuba-studio, был указан файл ojdbc10.jar с помощью специального диалога. Поскольку лицензия oracle не позволяет его подгружать автоматом. После этого действия файл был скопирован механизмами cuba-studio в /deploy/tomcat/lib и переименован в ojdbc6.jar. Туда же я подложил и orai10n.jar, чтобы обойти ошибку с неизвестной кодировкой в БД при запуске тестового томката. Здесь все ок.
Однако утилита из состава студии, создающая скрипты БД, очевидно не содержит в класспасе /deploy/tomcat/lib, а где она ищет драйвер я не знаю. Поэтому и не знаю, куда подкладывать доп.джарник.
P.s.
Сегодня у меня появилась мысль, что возможно нужно настроить соединение с БД в самой идее - там при первоначальной настройке соединения также загружаются драйверы. Это свежая инсталляция и там пока не настраивал. Вечером попробую.

Добрый день

Попробуйте добавить orai18n.jar в <IDE_installation_dir>/plugins/cuba-studio/lib/

1 симпатия

Да, это помогло, спасибо!

Кстати, ранее уже заводили тикет на гитхабе насчет того, чтобы не переименовывать все jdbc-драйверы oracle вида ojdbcX.jar в ojbc6.jar. Может быть, туда же добавить - вместе с ojdbcX.jar копировать еще и orai10n.jar, если такой имеется в источнике?

Да, спасибо за идею.
В багтрекере уже есть подобная задача, ожидается в 13-м релизе
См. https://youtrack.cuba-platform.com/issue/STUDIO-6757

кстати, новые драйвера оракла есть уже в maven central. Правда я не интересовался лицензией, но может быть их уже можно использовать в проектах на Кубе как например от Постгрес - без лишних действий (добавление через отдельное меню)… Это было бы очень удобно.

https://mvnrepository.com/artifact/oracle/oracle-jdbc/12.1.0.2

К сожалению, лицензионные ограничения остались в силе. Мы по прежнему не имеем права распространять драйвера в составе CUBA Studio. То есть избавиться от добавления драйверов через отдельное меню нет возможности.
Положительным моментом можно отметить, что можно использовать зависимость в проектах.
Создан тикет в YouTrack.

1 симпатия