启动使用SORM框架的scala项目时出错(Error while starting scala project that uses SORM framework)

编程入门 行业动态 更新时间:2024-10-28 09:25:37
启动使用SORM框架的scala项目时出错(Error while starting scala project that uses SORM framework)

我从教程中创建了简单的sbt项目:

build.sbt:

lazy val sorm_test = (project in file(".")). settings( name := "SORM_TEST", scalaVersion := "2.11.7", libraryDependencies ++= Seq( "org.sorm-framework" % "sorm" % "0.3.18", "com.h2database" % "h2" % "1.4.188" ) )

test.Main.scala:

package test case class Artist( names : Map[Locale, Seq[String]], genres : Set[Genre] ) case class Genre( names : Map[Locale, Seq[String]] ) case class Locale( code : String ) import sorm._ object Db extends Instance( entities = Set( Entity[Artist](), Entity[Genre](), Entity[Locale](unique = Set() + Seq("code")) ), url = "jdbc:h2:mem:test", user = "", password = "", initMode = InitMode.Create ) object Main extends App { // init Db.## }

当我在intellij中运行这个项目时,我有这样的例外:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. Exception in thread "main" java.lang.BootstrapMethodError: java.lang.NoClassDefFoundError: scala/runtime/java8/JFunction1 at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl.parse(ToolBoxFactory.scala:414) at sorm.persisted.PersistedClass$.createClass(PersistedClass.scala:107) at sorm.persisted.PersistedClass$$anon$1$$anonfun$resolve$1.apply(PersistedClass.scala:125) at sorm.persisted.PersistedClass$$anon$1$$anonfun$resolve$1.apply(PersistedClass.scala:125) at scala.collection.mutable.MapLike$class.getOrElseUpdate(MapLike.scala:194) at scala.collection.mutable.AbstractMap.getOrElseUpdate(Map.scala:80) at sorm.persisted.PersistedClass$$anon$1.resolve(PersistedClass.scala:125) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at sorm.persisted.PersistedClass$.apply(PersistedClass.scala:129) at sorm.Instance$Initialization$$anonfun$9$$anonfun$apply$16.apply(Instance.scala:239) at sorm.Instance$Initialization$$anonfun$9$$anonfun$apply$16.apply(Instance.scala:239) at embrace.package$EmbraceAny$.$$extension(package.scala:6) at sorm.Instance$Initialization$$anonfun$9.apply(Instance.scala:239) at sorm.Instance$Initialization$$anonfun$9.apply(Instance.scala:239) at scala.collection.immutable.Set$Set3.foreach(Set.scala:145) at sorm.Instance$Initialization.<init>(Instance.scala:239) at sorm.Instance.<init>(Instance.scala:38) at test.Db$.<init>(Main.scala:15) at test.Db$.<clinit>(Main.scala) at test.Main$.delayedEndpoint$test$Main$1(Main.scala:29) at test.Main$delayedInit$body.apply(Main.scala:27) at scala.Function0$class.apply$mcV$sp(Function0.scala:34) at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12) at scala.App$$anonfun$main$1.apply(App.scala:76) at scala.App$$anonfun$main$1.apply(App.scala:76) at scala.collection.immutable.List.foreach(List.scala:381) at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35) at scala.App$class.main(App.scala:76) at test.Main$.main(Main.scala:27) at test.Main.main(Main.scala) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140) Caused by: java.lang.NoClassDefFoundError: scala/runtime/java8/JFunction1 ... 38 more Caused by: java.lang.ClassNotFoundException: scala.runtime.java8.JFunction1 at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 38 more

我使用sbt run时sbt run 。 当我将SORM与Play框架集成时,也会抛出此异常。 我怎么解决这个问题 ?

I have created simple sbt project from tutorial:

build.sbt:

lazy val sorm_test = (project in file(".")). settings( name := "SORM_TEST", scalaVersion := "2.11.7", libraryDependencies ++= Seq( "org.sorm-framework" % "sorm" % "0.3.18", "com.h2database" % "h2" % "1.4.188" ) )

test.Main.scala:

package test case class Artist( names : Map[Locale, Seq[String]], genres : Set[Genre] ) case class Genre( names : Map[Locale, Seq[String]] ) case class Locale( code : String ) import sorm._ object Db extends Instance( entities = Set( Entity[Artist](), Entity[Genre](), Entity[Locale](unique = Set() + Seq("code")) ), url = "jdbc:h2:mem:test", user = "", password = "", initMode = InitMode.Create ) object Main extends App { // init Db.## }

When i run this project in intellij i have such exceptions :

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. Exception in thread "main" java.lang.BootstrapMethodError: java.lang.NoClassDefFoundError: scala/runtime/java8/JFunction1 at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl.parse(ToolBoxFactory.scala:414) at sorm.persisted.PersistedClass$.createClass(PersistedClass.scala:107) at sorm.persisted.PersistedClass$$anon$1$$anonfun$resolve$1.apply(PersistedClass.scala:125) at sorm.persisted.PersistedClass$$anon$1$$anonfun$resolve$1.apply(PersistedClass.scala:125) at scala.collection.mutable.MapLike$class.getOrElseUpdate(MapLike.scala:194) at scala.collection.mutable.AbstractMap.getOrElseUpdate(Map.scala:80) at sorm.persisted.PersistedClass$$anon$1.resolve(PersistedClass.scala:125) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at sorm.persisted.PersistedClass$.apply(PersistedClass.scala:129) at sorm.Instance$Initialization$$anonfun$9$$anonfun$apply$16.apply(Instance.scala:239) at sorm.Instance$Initialization$$anonfun$9$$anonfun$apply$16.apply(Instance.scala:239) at embrace.package$EmbraceAny$.$$extension(package.scala:6) at sorm.Instance$Initialization$$anonfun$9.apply(Instance.scala:239) at sorm.Instance$Initialization$$anonfun$9.apply(Instance.scala:239) at scala.collection.immutable.Set$Set3.foreach(Set.scala:145) at sorm.Instance$Initialization.<init>(Instance.scala:239) at sorm.Instance.<init>(Instance.scala:38) at test.Db$.<init>(Main.scala:15) at test.Db$.<clinit>(Main.scala) at test.Main$.delayedEndpoint$test$Main$1(Main.scala:29) at test.Main$delayedInit$body.apply(Main.scala:27) at scala.Function0$class.apply$mcV$sp(Function0.scala:34) at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12) at scala.App$$anonfun$main$1.apply(App.scala:76) at scala.App$$anonfun$main$1.apply(App.scala:76) at scala.collection.immutable.List.foreach(List.scala:381) at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35) at scala.App$class.main(App.scala:76) at test.Main$.main(Main.scala:27) at test.Main.main(Main.scala) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140) Caused by: java.lang.NoClassDefFoundError: scala/runtime/java8/JFunction1 ... 38 more Caused by: java.lang.ClassNotFoundException: scala.runtime.java8.JFunction1 at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 38 more

It's ok when i use sbt run. This exception is thrown also when i integrate SORM with Play framework. How can i solve this problem ?

最满意答案

我通过在我的sbt配置中添加dependencyOverrides += "org.scala-lang" % "scala-compiler" % scalaVersion.value来解决这个问题。

I solved this problem by adding dependencyOverrides += "org.scala-lang" % "scala-compiler" % scalaVersion.value to my sbt configuration.

更多推荐

本文发布于:2023-07-29 15:44:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1317547.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:框架   项目   scala   SORM   framework

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!