java.lang.NoSuchMethodError:io.netty.channel.DefaultChannelId.newInstance()Lio/netty/channel/DefaultChannelId;

java.lang.NoSuchMethodError:io.netty.channel.DefaultChannelId.newInstance()Lio/netty/channel/DefaultChannelId;,java,playframework,sbt,aws-sdk,playframework-2.5,Java,Playframework,Sbt,Aws Sdk,Playframework 2.5,我正在尝试使用software.amazon.awssdk“%”dynamodb“%”2.10.33“ 我在播放框架(Java)上的项目 以下是项目配置的简要说明 scalaVersion := "2.11.8" addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.5.14") sbt.version=0.13.8 尝试从新包中排除netty依赖项 ("software.amazon.awssdk" % "dynamodb" % "2.10

我正在尝试使用software.amazon.awssdk“%”dynamodb“%”2.10.33“ 我在播放框架(Java)上的项目

以下是项目配置的简要说明

scalaVersion := "2.11.8"
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.5.14")
sbt.version=0.13.8
尝试从新包中排除netty依赖项

("software.amazon.awssdk" % "dynamodb" % "2.10.33").excludeAll(ExclusionRule(organization =  "io.netty"))
这项工程很顺利

"com.amazonaws" % "aws-java-sdk-core" % "1.10.52",
"com.amazonaws" % "aws-java-sdk-s3" % "1.10.52",
"com.amazonaws" % "aws-java-sdk-dynamodb" % "1.10.52"
升级到新的AWS库似乎会破坏项目<代码>sbt编译返回成功 但是,
sbt run
会导致上述错误

java.lang.NoSuchMethodError:
>io.netty.channel.DefaultChannelId.newInstance()Lio/netty/channel/DefaultChannelId;
[信息]使用Aspectj Weaver运行应用程序
---(运行应用程序时,启用自动重新加载)---
java.lang.NoSuchMethodError:io.netty.channel.DefaultChannelId.newInstance()Lio/netty/channel/DefaultChannelId;
在io.netty.channel.AbstractChannel.newId(AbstractChannel.java:100)上
在io.netty.channel.AbstractChannel。(AbstractChannel.java:72)
在io.netty.bootstrap.FailedChannel.(FailedChannel.java:33)
位于io.netty.bootstrap.AbstractBootstrap.initAndRegister(AbstractBootstrap.java:308)
位于io.netty.bootstrap.AbstractBootstrap.doBind(AbstractBootstrap.java:260)
位于io.netty.bootstrap.AbstractBootstrap.bind(AbstractBootstrap.java:227)
在游戏中.core.server.NettyServer.bind(NettyServer.scala:139)
在play.core.server.NettyServer.play$core$server$NettyServer$$bindChannel(NettyServer.scala:224)
at play.core.server.NettyServer$$anonfun$1.apply(NettyServer.scala:216)
at play.core.server.NettyServer$$anonfun$1.apply(NettyServer.scala:216)
在scala.Option.map处(Option.scala:146)
在游戏中。core.server.NettyServer。(NettyServer.scala:216)
播放时.core.server.NettyServerProvider.createServer(NettyServer.scala:279)
播放时.core.server.NettyServerProvider.createServer(NettyServer.scala:278)
at play.core.server.DevServerStart$$anonfun$mainDev$1.apply(DevServerStart.scala:235)
at play.core.server.DevServerStart$$anonfun$mainDev$1.apply(DevServerStart.scala:65)
在播放时.utils.Threads$.withContextClassLoader(Threads.scala:21)
at play.core.server.DevServerStart$.mainDev(DevServerStart.scala:64)
在播放时.core.server.DevServerStart$.mainDevHttpMode(DevServerStart.scala:54)
播放时.core.server.DevServerStart.mainDevHttpMode(DevServerStart.scala)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:498)
在播放时.runsupport.Reloader$.startDevMode(Reloader.scala:234)
在play.sbt.run.PlayRun$$anonfun$PlayRun任务$1$$anonfun$apply$2$$anonfun$apply$3.devModeServer$lzycompute$1(PlayRun.scala:74)
在play.sbt.run.PlayRun$$anonfun$PlayRun任务$1$$anonfun$apply$2$$anonfun$apply$3.play$sbt$run$PlayRun$$anonfun$$anonfun$$anonfun$$devModeServer$1(PlayRun.scala:74)
在play.sbt.run.PlayRun$$anonfun$PlayRun任务$1$$anonfun$apply$2$$anonfun$apply$3.apply(PlayRun.scala:100)
在play.sbt.run.PlayRun$$anonfun$PlayRun任务$1$$anonfun$apply$2$$anonfun$apply$3.apply(PlayRun.scala:53)
在scala.Function1$$anonfun$compose$1.apply处(Function1.scala:47)
附加的依赖关系树:
您试图使用两个不兼容的Netty版本。这是不可能的

升级到Play 2.6或更高版本将解决此问题,原因有两个:

  • Play 2.6默认使用akka http作为服务器
  • Play 2.6中的Netty是着色的,因此您可以使用另一个库,该库取决于项目中的Netty

  • 编辑:AWS SDK仅将Netty用作其默认http客户端,可以替换它

    libraryDependencies++=Seq(
    “software.amazon.awssdk”%“dynamodb”%“2.10.33”排除(“software.amazon.awssdk”、“netty nio客户端”)
    )
    
    java.lang.NoSuchMethodError:
    > io.netty.channel.DefaultChannelId.newInstance()Lio/netty/channel/DefaultChannelId;
    
    
    [info] Running the application with Aspectj Weaver
    --- (Running the application, auto-reloading is enabled) ---
    
    java.lang.NoSuchMethodError: io.netty.channel.DefaultChannelId.newInstance()Lio/netty/channel/DefaultChannelId;
            at io.netty.channel.AbstractChannel.newId(AbstractChannel.java:100)
            at io.netty.channel.AbstractChannel.<init>(AbstractChannel.java:72)
            at io.netty.bootstrap.FailedChannel.<init>(FailedChannel.java:33)
            at io.netty.bootstrap.AbstractBootstrap.initAndRegister(AbstractBootstrap.java:308)
            at io.netty.bootstrap.AbstractBootstrap.doBind(AbstractBootstrap.java:260)
            at io.netty.bootstrap.AbstractBootstrap.bind(AbstractBootstrap.java:227)
            at play.core.server.NettyServer.bind(NettyServer.scala:139)
            at play.core.server.NettyServer.play$core$server$NettyServer$$bindChannel(NettyServer.scala:224)
            at play.core.server.NettyServer$$anonfun$1.apply(NettyServer.scala:216)
            at play.core.server.NettyServer$$anonfun$1.apply(NettyServer.scala:216)
            at scala.Option.map(Option.scala:146)
            at play.core.server.NettyServer.<init>(NettyServer.scala:216)
            at play.core.server.NettyServerProvider.createServer(NettyServer.scala:279)
            at play.core.server.NettyServerProvider.createServer(NettyServer.scala:278)
            at play.core.server.DevServerStart$$anonfun$mainDev$1.apply(DevServerStart.scala:235)
            at play.core.server.DevServerStart$$anonfun$mainDev$1.apply(DevServerStart.scala:65)
            at play.utils.Threads$.withContextClassLoader(Threads.scala:21)
            at play.core.server.DevServerStart$.mainDev(DevServerStart.scala:64)
            at play.core.server.DevServerStart$.mainDevHttpMode(DevServerStart.scala:54)
            at play.core.server.DevServerStart.mainDevHttpMode(DevServerStart.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:498)
            at play.runsupport.Reloader$.startDevMode(Reloader.scala:234)
            at play.sbt.run.PlayRun$$anonfun$playRunTask$1$$anonfun$apply$2$$anonfun$apply$3.devModeServer$lzycompute$1(PlayRun.scala:74)
            at play.sbt.run.PlayRun$$anonfun$playRunTask$1$$anonfun$apply$2$$anonfun$apply$3.play$sbt$run$PlayRun$$anonfun$$anonfun$$anonfun$$devModeServer$1(PlayRun.scala:74)
            at play.sbt.run.PlayRun$$anonfun$playRunTask$1$$anonfun$apply$2$$anonfun$apply$3.apply(PlayRun.scala:100)
            at play.sbt.run.PlayRun$$anonfun$playRunTask$1$$anonfun$apply$2$$anonfun$apply$3.apply(PlayRun.scala:53)
            at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)