JBoss Scala模块,以及使用并行集合时的NoClassDefFoundError

JBoss Scala模块,以及使用并行集合时的NoClassDefFoundError,scala,jboss7.x,Scala,Jboss7.x,我通过创建文件夹/modules/org/Scala/main为Scala创建了一个JBoss模块(JBoss 7.1.1.Final),将Scala 2.9.2的Scala-library.jar与Module.xml放在一起,其中包含: <?xml version="1.0" encoding="UTF-8"?> <module xmlns="urn:jboss:module:1.1" name="org.scala"> <resources>

我通过创建文件夹/modules/org/Scala/main为Scala创建了一个JBoss模块(JBoss 7.1.1.Final),将Scala 2.9.2的Scala-library.jar与Module.xml放在一起,其中包含:

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="org.scala">
    <resources>
        <resource-root path="scala-library.jar"/>
    </resources>
</module>
错误是:

Caused by: java.lang.NoClassDefFoundError: Could not initialize class scala.collection.parallel.package$
at scala.collection.parallel.Combiner$class.$init$(Combiner.scala:37) [scala-library.jar:]
at scala.collection.parallel.mutable.ResizableParArrayCombiner$$anon$1.<init>(ResizableParArrayCombiner.scala:96) [scala-library.jar:]
at scala.collection.parallel.mutable.ResizableParArrayCombiner$.apply(ResizableParArrayCombiner.scala:96) [scala-library.jar:]
at scala.collection.parallel.mutable.ResizableParArrayCombiner$.apply(ResizableParArrayCombiner.scala:98) [scala-library.jar:]
at scala.collection.parallel.mutable.ParSeq$.newCombiner(ParSeq.scala:58) [scala-library.jar:]
at scala.collection.mutable.SeqLike$class.parCombiner(SeqLike.scala:27) [scala-library.jar:]
at scala.collection.mutable.ListBuffer.parCombiner(ListBuffer.scala:44) [scala-library.jar:]
at scala.collection.Parallelizable$class.par(Parallelizable.scala:40) [scala-library.jar:]
at scala.collection.mutable.ListBuffer.par(ListBuffer.scala:44) [scala-library.jar:]
at ch.maxant.scalabook.services.EventService.reserveOffer(EventService.scala:190) [classes:]
即,创建并行序列的方法调用导致异常

如果我不使用JBoss模块,并且将scala-library.jar粘贴到WEB-INF/lib中,那么我就不会有这个问题

我怀疑它与模块中的类加载有关,但我不知道在哪里修复它,或者它是否是JBoss模块中的一个bug


问题是:有人能给我任何解决方案吗,或者这是一个已知的问题吗?

您是否已签出Escalant?它是一个基于JBossAS 7.Hmmm的Scala应用服务器,Scala社区重新发明了轮子。。。好的提示。
def reserveOffer(event: EventOffer, tarifs: Seq[Tarif]) = {
    val reservations = tarifs.par.map{ t =>
        getAdapter(t.bookingSystem) match {
            case Some(a) => a.reserveOffer(event, t)
            case _ => throw new 
                    IllegalStateException(
                            "Unknown adapter " + 
                            t.bookingSystem)
        }
    }
    reservations.seq
}
Caused by: java.lang.NoClassDefFoundError: Could not initialize class scala.collection.parallel.package$
at scala.collection.parallel.Combiner$class.$init$(Combiner.scala:37) [scala-library.jar:]
at scala.collection.parallel.mutable.ResizableParArrayCombiner$$anon$1.<init>(ResizableParArrayCombiner.scala:96) [scala-library.jar:]
at scala.collection.parallel.mutable.ResizableParArrayCombiner$.apply(ResizableParArrayCombiner.scala:96) [scala-library.jar:]
at scala.collection.parallel.mutable.ResizableParArrayCombiner$.apply(ResizableParArrayCombiner.scala:98) [scala-library.jar:]
at scala.collection.parallel.mutable.ParSeq$.newCombiner(ParSeq.scala:58) [scala-library.jar:]
at scala.collection.mutable.SeqLike$class.parCombiner(SeqLike.scala:27) [scala-library.jar:]
at scala.collection.mutable.ListBuffer.parCombiner(ListBuffer.scala:44) [scala-library.jar:]
at scala.collection.Parallelizable$class.par(Parallelizable.scala:40) [scala-library.jar:]
at scala.collection.mutable.ListBuffer.par(ListBuffer.scala:44) [scala-library.jar:]
at ch.maxant.scalabook.services.EventService.reserveOffer(EventService.scala:190) [classes:]
    val reservations = tarifs.par.map{ t =>