Это сообщение помечено для удаления, поскольку проблема связана с тем, что среда IDE не создает надлежащую банку, поэтому проблемы с взаимодействием кода
У меня есть небольшое приложение flink, которое читает из темы kafka, необходимо запросить, если вход из темы (x) существует в столбце базы данных MySql перед ее обработкой (Not Ideal, но его текущее требование)
Когда я запускаю приложение через IDE (Intellij) → Он работает. Однако, когда я отправляю задание на сервер flink, он не может открыть соединение на основе драйвера
Ошибка с сервера Flink
// ERROR
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
// ---------------------
// small summary of MAIN
// ---------------------
Get Data from Source (x)
source.map(x => {
// open connection (Fails to open)
// check if data exist in db
})
// -------------------------------------
// open connection function (Scala Code)
// -------------------------------------
def openConnection() : Boolean = {
try {
// - set driver
Class.forName("com.mysql.jdbc.Driver")
// - make the connection
connection = DriverManager.getConnection(url, user, pswd)
// - set status controller
connection_open = true
}
catch {
// - catch error
case e: Throwable => e.printStackTrace
// - set status controller
connection_open = false
}
// return result
return connection_open
}
Вопрос
1) Каков правильный способ взаимодействия с MySql Database из приложения flink?
2) Я также на более позднем этапе должен выполнить аналогичное взаимодействие с MongoDB, каков правильный способ взаимодействия с MongoDB от FLink?
Невероятный IntelliJ не обновляет зависимости от команды rebuild.
В IntelliJ вам необходимо удалить и повторно настроить создателя артефакта для всех зависимостей. (Build, Clean, Rebuild, Delete) не обновляет свои настройки.
Я удалил и воссоздал файл артефакта. И он работает извинения за ненужные неудобства (как вы можете себе представить мое разочарование). Но это слово предостережения для тех, кто развивается в IntelliJ, вручную удалять и воссоздавать артефакты
Решение: (Файл → Структура проекта → Артефакты → (-) удалить предыдущий → (+) создать новый → Выбрать главный класс)