我正在使用 mod-mysql-postgresql 模块作为我的项目的一部分。在启动过程中,我注意到 mod-mysql-postgresql 尝试下载 io.vertx~lang-scala~1.0.0 。我在启动消息中收到以下行
信息:正在下载 io.vertx~lang-scala~1.0.0。请稍等...
我不确定 io.vertx~lang-scala~1.0.0 行来自哪里。如果我在 mod.json“includes”部分中包含 io.vertx~lang-scala~1.0.0,那么我不会收到此错误。但是应用程序失败并出现以下错误
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
vertx/conf/langs.properties 中的 Scala 条目
scala=io.vertx~lang-scala_2.10~1.1.0-M1:org.vertx.scala.platform.impl.ScalaVerticleFactory
最佳答案
问题不在 mod-mysql-postgresql 中。 Vertx fatjar 尝试对 scala 文件使用默认的 io.vertx~lang-scala~1.0.0 mod。为了覆盖默认设置,我在 src/main/resources/platform_lib 中添加了 langs.properties 并添加了以下几行
scala=io.vertx~lang-scala_2.10~1.1.0-M1:org.vertx.scala.platform.impl.ScalaVerticleFactory .scala=scala
并在mod.json中添加了io.vertx~lang-scala_2.10~1.1.0-M1
{ "main":"Main", "auto-redeploy": true, "includes":"io.vertx~lang-scala_2.10~1.1.0-M1", }
关于java - mod-mysql-postgresql 在启动期间尝试下载 io.vertx~lang-scala~1.0.0 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29223575/