mod-mysql-postgresql пытается загрузить модуль io.vertx ~ lang-scala ~ 1.0.0 при запуске

1

Я использую модуль mod-mysql-postgresql как часть моего проекта. Во время запуска я замечаю, что mod-mysql-postgresql пытается загрузить io.vertx ~ lang-scala ~ 1.0.0. Я получаю следующую строку в сообщении о запуске

INFO: Загрузка io.vertx ~ lang-scala ~ 1.0.0. Пожалуйста, подождите...

Я не уверен, откуда идет io.vertx ~ lang-scala ~ 1.0.0. Если я включу io.vertx ~ lang-scala ~ 1.0.0 в раздел mod.json "includes", то я не получу эту ошибку. Но тогда приложение выходит из строя со следующей ошибкой

java.lang.LinkageError: loader constraint violation: loader (instance of org/vertx/java/platform/impl/ModuleClassLoader) previously initiated loading for a different type with name "org/vertx/scala/core/VertxAccess"
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:455)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:367)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at org.vertx.java.platform.impl.ModuleClassLoader.doLoadClass(ModuleClassLoader.java:136)
at org.vertx.java.platform.impl.ModuleClassLoader.loadFromModule(ModuleClassLoader.java:121)
at org.vertx.java.platform.impl.ModuleClassLoader.loadClass(ModuleClassLoader.java:108)

Детали среды:

Версия Vertx: 2.1.5
Версия mod-mysql-postgresql: 0.3.1

Запись Scala в файле vertx/conf/langs.properties
= io.vertx Scala ~ Ланг-scala_2.10 ~ 1.1.0-М1: org.vertx.scala.platform.impl.ScalaVerticleFactory

Теги:
vert.x

1 ответ

1

Проблема не в mod-mysql-postgresql. Vertx fatjar пытается использовать по умолчанию io.vertx ~ lang-scala ~ 1.0.0 mod для файлов scala. Чтобы переопределить настройку по умолчанию, я добавил langs.properties в src/main/resources/platform_lib со следующими строками

scala = io.vertx ~ lang-scala_2.10 ~ 1.1.0-M1: org.vertx.scala.platform.impl.ScalaVerticleFactory.scala = scala

И добавил io.vertx ~ lang-scala_2.10 ~ 1.1.0-M1 в mod.json

{"main": "Main", "auto-redeploy": true, "includes": "io.vertx ~ lang-scala_2.10 ~ 1.1.0-M1",}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню