【发布时间】:2017-09-11 01:16:27
【问题描述】:
我正在尝试使用 Spray 和 Akka 创建一个新的 Scala 项目。我正在使用 Scala 2.12.1,我的 pom 看起来像这样。
<dependencies>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-actor_2.12</artifactId>
<version>2.4.16</version>
</dependency>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.12.1</version>
</dependency>
<dependency>
<groupId>com.enragedginger</groupId>
<artifactId>akka-quartz-scheduler_2.12</artifactId>
<version>1.6.0-akka-2.4.x</version>
</dependency>
<dependency>
<groupId>io.spray</groupId>
<artifactId>spray-servlet</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>io.spray</groupId>
<artifactId>spray-routing</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-slf4j_2.12</artifactId>
<version>2.4.16</version>
</dependency>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-http-spray-json_2.12</artifactId>
<version>10.0.5</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<dependency>
<groupId>commons-dbutils</groupId>
<artifactId>commons-dbutils</artifactId>
<version>1.6</version>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.9.9</version>
</dependency>
<dependency>
<groupId>org.scala-lang.modules</groupId>
<artifactId>scala-xml_2.12</artifactId>
<version>1.0.6</version>
</dependency>
</dependencies>
这个 pom 构建了一个 WAR 文件,但是每次我尝试将该 WAR 文件部署到服务器上时,我都会收到以下错误。我相信我使用的依赖项与 Scala 2.12.1 兼容,你们都发现有什么问题吗?
java.lang.NoClassDefFoundError: scala/Product$class
at spray.http.Uri$Path$Empty$.<init>(Uri.scala:435)
at spray.http.Uri$Path$Empty$.<clinit>(Uri.scala)
at spray.http.Uri$Path$.<init>(Uri.scala:415)
at spray.http.Uri$Path$.<clinit>(Uri.scala)
at spray.servlet.ConnectorSettings$.fromSubConfig(ConnectorSettings.scala:52)
【问题讨论】:
-
您是否正在构建一个包含所有依赖项的 WAR。我从未在 JVM 上使用过 WAR,我一直使用 fat jat:stackoverflow.com/questions/23089700/deploy-war-or-fat-jar
-
是的,与所有依赖项作战。但我正在通过 intellij 部署这场战争。
-
作为建议,您应该考虑使用与 scala 2.12.1 兼容并取代 Spray 的 akka-http
标签: scala maven akka pom.xml spray