netty冲突 play sbt_尝试添加MySQL / slick后,Strange Play Framework 2.2异常

我正在开发一个Play 2.2应用程序,自从我尝试添加我的数据库层以来,事情已经在我身上发生了一些变化.

下面是我的build.sbt依赖项.如你所见,我使用mysql-connector-java和play-slick:

libraryDependencies ++= Seq(

jdbc,

anorm,

cache,

"joda-time" % "joda-time" % "2.3",

"mysql" % "mysql-connector-java" % "5.1.26",

"com.typesafe.play" %% "play-slick" % "0.5.0.8",

"com.aetrion.flickr" % "flickrapi" % "1.1"

)

我的application.conf中有一些类似的简单数据库内容:

db.default.url="jdbc:mysql://localhost/myDb"

db.default.driver="com.mysql.jdbc.Driver"

db.default.user="root"

db.default.pass=""

这是我的Play服务器启动时的样子:

[info] play - Listening for HTTP on /0:0:0:0:0:0:0:0:9000

(Server started, use Ctrl+D to stop and go back to the console...)

[info] Compiling 1 Scala source to C:\bbq\cats\in\space

[info] play - database [default] connected at jdbc:mysql://localhost/myDb

[info] play - Application started (Dev)

所以,似乎Play可以很好地连接到MySQL数据库(我认为).但是,当我向服务器发出任何请求时,我收到此异常:

[error] p.nettyException - Exception caught in Netty

java.lang.NoSuchMethodError: akka.actor.ActorSystem.dispatcher()Lscala/concurren

t/ExecutionContext;

at play.core.Invoker$.(Invoker.scala:24) ~[play_2.10.jar:2.2.0]

at play.core.Invoker$.(Invoker.scala) ~[play_2.10.jar:2.2.0]

at play.api.libs.concurrent.Execution$Implicits$.defaultContext$lzycompu

te(Execution.scala:7) ~[play_2.10.jar:2.2.0]

at play.api.libs.concurrent.Execution$Implicits$.defaultContext(Executio

n.scala:6) ~[play_2.10.jar:2.2.0]

at play.api.libs.concurrent.Execution$.(Execution.scala:10) ~[play

_2.10.jar:2.2.0]

at play.api.libs.concurrent.Execution$.(Execution.scala) ~[play_

2.10.jar:2.2.0]

奇怪的是,第二个请求(到完全相同的URL,相同的控制器,没有更改)返回一个不同的错误:

[error] p.nettyException - Exception caught in Netty

java.lang.NoClassDefFoundError: Could not initialize class play.api.libs.concurr

ent.Execution$

at play.core.server.netty.PlayDefaultUpstreamHandler.handleAction$1(Play

DefaultUpstreamHandler.scala:194) ~[play_2.10.jar:2.2.0]

at play.core.server.netty.PlayDefaultUpstreamHandler.messageReceived(Pla

yDefaultUpstreamHandler.scala:169) ~[play_2.10.jar:2.2.0]

at com.typesafe.netty.http.pipelining.HttpPipeliningHandler.messageRecei

ved(HttpPipeliningHandler.java:62) ~[netty-http-pipelining.jar:na]

at org.jboss.netty.handler.codec.http.HttpContentDecoder.messageReceived

(HttpContentDecoder.java:108) ~[netty-3.6.5.Final.jar:na]

at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:29

6) ~[netty-3.6.5.Final.jar:na]

at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessage

Received(FrameDecoder.java:459) ~[netty-3.6.5.Final.jar:na]

我请求的URL /控制器只是呈现一个静态网页,并没有做任何重要的事情.在我开始添加数据库层之前,它工作得很好. I’m rather stuck.非常感谢任何帮助,谢谢.

我正在使用Scala 2.10.2,Play 2.2.0和MySQL Server 5.6.14.0(社区版).

解决方法:

好吧,我终于明白了.我觉得有点像dolt,但我会在这里发布,因为它可能对其他人有用:

在我的项目的早期工作中,我正在尝试其他各种可能的库:Mongo,BSON转换器等.当然,在进行实验时,我将它们添加到我的IDE的项目库依赖项中(我正在使用IntelliJ IDEA 12) .当然,IntelliJ正在下载JAR并将它们放入我项目的lib目录中.但是,在确定了我想要使用的库并从项目依赖项中删除不必要的库之后,IntelliJ没有从项目的lib目录中删除/清除未使用的JAR.这导致了大量不必要的JAR存在,其中一些可能与SBT库相冲突.

简而言之:我清理了Play项目的lib目录,在IDE中仔细检查了项目的库依赖项,并仅重新导入了我真正需要的JAR.

标签:mysql,scala,jdbc,playframework,playframework-2-0

来源: https://codeday.me/bug/20190529/1176387.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值