【问题标题】:java.lang.ClassNotFoundException: scala.Int when using akka 2.5.6 with sbt version 1.0.2java.lang.ClassNotFoundException: scala.Int 使用 akka 2.5.6 和 sbt 版本 1.0.2 时
【发布时间】:2018-01-09 21:05:42
【问题描述】:

我正在尝试将 akka -remoting 版本 2.5.4 与最新的 sbt 1.0.2 一起使用

当我使用 sbt 版本 0.13.15 或 0.13.16 时,它运行良好。

但是当我使用 sbt verion 1.0.2 作为here 时,我遇到了错误。

下面的异常是运行时异常。

[error] (run-main-0) java.lang.ClassNotFoundException: scala.Int
[error] java.lang.ClassNotFoundException: scala.Int
[error]     at sbt.internal.inc.classpath.ClasspathFilter.loadClass(ClassLoaders.scala:74)
[error]     at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
[error]     at java.lang.Class.forName0(Native Method)
[error]     at java.lang.Class.forName(Class.java:348)
[error]     at akka.actor.ReflectiveDynamicAccess.$anonfun$getClassFor$1(ReflectiveDynamicAccess.scala:21)
[error]     at scala.util.Try$.apply(Try.scala:209)
[error]     at akka.actor.ReflectiveDynamicAccess.getClassFor(ReflectiveDynamicAccess.scala:20)
[error]     at akka.serialization.Serialization.$anonfun$bindings$3(Serialization.scala:313)
[error]     at scala.collection.TraversableLike$WithFilter.$anonfun$map$2(TraversableLike.scala:739)
[error]     at scala.collection.immutable.HashMap$HashMap1.foreach(HashMap.scala:231)
[error]     at scala.collection.immutable.HashMap$HashTrieMap.foreach(HashMap.scala:462)
[error]     at scala.collection.TraversableLike$WithFilter.map(TraversableLike.scala:738)
[error]     at akka.serialization.Serialization.<init>(Serialization.scala:311)
[error]     at akka.serialization.SerializationExtension$.createExtension(SerializationExtension.scala:15)
[error]     at akka.serialization.SerializationExtension$.createExtension(SerializationExtension.scala:12)
[error]     at akka.actor.ActorSystemImpl.registerExtension(ActorSystem.scala:880)
[error]     at akka.actor.ExtensionId.apply(Extension.scala:77)
[error]     at akka.actor.ExtensionId.apply$(Extension.scala:77)
[error]     at akka.serialization.SerializationExtension$.apply(SerializationExtension.scala:12)
[error]     at akka.remote.RemoteActorRefProvider.init(RemoteActorRefProvider.scala:203)
[error]     at akka.actor.ActorSystemImpl.liftedTree2$1(ActorSystem.scala:796)
[error]     at akka.actor.ActorSystemImpl._start$lzycompute(ActorSystem.scala:793)
[error]     at akka.actor.ActorSystemImpl._start(ActorSystem.scala:793)
[error]     at akka.actor.ActorSystemImpl.start(ActorSystem.scala:809)
[error]     at akka.actor.ActorSystem$.apply(ActorSystem.scala:244)
[error]     at akka.actor.ActorSystem$.apply(ActorSystem.scala:287)
[error]     at akka.actor.ActorSystem$.apply(ActorSystem.scala:262)
[error]     at module09.remoteB.RemoteBStartup$.main(RemoteBStartup.scala:8)
[error]     at module09.remoteB.RemoteBStartup.main(RemoteBStartup.scala)
[error]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[error]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[error]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[error]     at java.lang.reflect.Method.invoke(Method.java:498)
[error]     at sbt.Run.invokeMain(Run.scala:89)
[error]     at sbt.Run.run0(Run.scala:83)
[error]     at sbt.Run.execute$1(Run.scala:61)
[error]     at sbt.Run.$anonfun$run$4(Run.scala:73)
[error]     at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
[error]     at sbt.util.InterfaceUtil$$anon$1.get(InterfaceUtil.scala:10)
[error]     at sbt.TrapExit$App.run(TrapExit.scala:252)
[error]     at java.lang.Thread.run(Thread.java:748)

github位置是here

对我来说,这看起来是因为 ConfigFactory.load 导致的错误,因为 here 由于 sbt 最新版本而存在一些问题。

【问题讨论】:

  • 同样的问题,降级到 0.13.16 现在可以使用了
  • 升级到 1.1.0 也应该可以解决问题

标签: sbt typesafe-config


【解决方案1】:

这是 sbt 中的一个错误,所以我 filed it as such 并已在 sbt 版本 1.1.0 中修复。

(如果事实证明这很难解决,我们可能会考虑implement a workaround in Akka,但事实证明这不是必需的)

【讨论】:

  • 嘿,Arnaut,解决方案是什么? github问题中似乎没有太多细节。
  • 我认为这需要在 sbt 中修复(或者在 Akka 中,如果事实证明由于某种原因在 sbt 中修复它没有意义) - 现在最简单的方法可能是留在 sbt 0.13.16
  • (该错误已被修复,相应更新我的答案)
  • 感谢@ArnoutEngelen!如果不是这里有你的提示,我会在这里挖掘一段时间!
【解决方案2】:

添加fork in run := true(它将分叉JVM 来运行任务)似乎可以解决sbt 的问题。

在the issue opened by @Arnout 的回复中指出了此解决方法

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多