简体   繁体   English

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

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

I am trying to use "software.amazon.awssdk" % "dynamodb" % "2.10.33" with my project on Play framework (Java) .我正在尝试在Play framework (Java)上的项目中使用"software.amazon.awssdk" % "dynamodb" % "2.10.33"

Following is a brief of the project configuration以下是项目配置的简要介绍

scalaVersion := "2.11.8"
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.5.14")
sbt.version=0.13.8

Tried excluding netty dependency from the new package尝试从新包中排除 netty 依赖项

("software.amazon.awssdk" % "dynamodb" % "2.10.33").excludeAll(ExclusionRule(organization =  "io.netty"))

The project worked fine with该项目与

"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"

Upgrading to the new AWS library seems to break the project.升级到新的 AWS 库似乎破坏了该项目。 sbt compile returns success However, sbt run results in the aforementioned error. sbt compile返回成功 但是, sbt run导致上述错误。

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)

Attached dependency tree: https://drive.google.com/file/d/1dVf8aJiv2i0Tscn2XEhETQ-ae3dgqfHk/view?usp=sharing附加依赖树: https : //drive.google.com/file/d/1dVf8aJiv2i0Tscn2XEhETQ-ae3dgqfHk/view?usp=sharing

You are trying to use two incompatible versions of Netty.您正在尝试使用两个不兼容的 Netty 版本。 That is impossible.那是不可能的。

Upgrading to Play 2.6 or later would solve this for two reasons:升级到 Play 2.6 或更高版本可以解决这个问题,原因有两个:

  1. Play 2.6 uses akka-http as server by default Play 2.6 默认使用 akka-http 作为服务器
  2. Netty in Play 2.6 is shaded, so you can use another library which depends on Netty in your project Play 2.6 中的 Netty 带有阴影,因此您可以在项目中使用另一个依赖 Netty 的库

edit: the AWS SDK uses Netty only as its default http client, which can be replaced.编辑:AWS SDK 仅使用 Netty 作为其默认 http 客户端,可以替换。

libraryDependencies ++= Seq(
  "software.amazon.awssdk" % "dynamodb" % "2.10.33" exclude("software.amazon.awssdk", "netty-nio-client")
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 java.lang.NoSuchMethodError:io.netty.buffer.PooledByteBufAllocator.metric()Lio / netty / buffer / PooledByteBufAllocatorMetric; - java.lang.NoSuchMethodError: io.netty.buffer.PooledByteBufAllocator.metric()Lio/netty/buffer/PooledByteBufAllocatorMetric; 找不到 Java netty io/netty/channel/EventLoopGroup - Java netty io/netty/channel/EventLoopGroup not found java.lang.NoSuchMethodError:在重版和Netty集成中 - java.lang.NoSuchMethodError: in redisson and netty integration Java SparkContext错误:java.lang.NoSuchMethodError:io.netty.buffer.PooledByteBufAllocator - Java SparkContext error: java.lang.NoSuchMethodError: io.netty.buffer.PooledByteBufAllocator netty-socketio服务器中的java.lang.NoSuchMethodError - java.lang.NoSuchMethodError in netty-socketio server 引起原因:java.lang.RuntimeException:java.io.NotSerializableException:io.netty.channel.DefaultChannelHandlerContext - Caused by: java.lang.RuntimeException: java.io.NotSerializableException: io.netty.channel.DefaultChannelHandlerContext java.lang.AbstractMethodError:io.netty.handler.codec.http.DefaultFullHttpRequest.touch(Ljava/lang/Object;)Lio/netty/util/ReferenceCounted - java.lang.AbstractMethodError: io.netty.handler.codec.http.DefaultFullHttpRequest.touch(Ljava/lang/Object;)Lio/netty/util/ReferenceCounted 关于错误“线程“ main”中的异常”的问题java.lang.NoSuchMethodError:io.netty.resolver.HostsFileParser.parseSilently()Ljava / util / Map;” - problems about error “Exception in thread ”main“ java.lang.NoSuchMethodError: io.netty.resolver.HostsFileParser.parseSilently()Ljava/util/Map;” java.lang.UnsupportedOperationException 在 io.netty.channel.socket.nio.NioServerSocketChannel.doConnect(NioServerSocketChannel.java:178) - java.lang.UnsupportedOperationException at io.netty.channel.socket.nio.NioServerSocketChannel.doConnect(NioServerSocketChannel.java:178) java.lang.NoClassDefFoundError:org / jboss / netty / channel / ChannelFactory - java.lang.NoClassDefFoundError: org/jboss/netty/channel/ChannelFactory
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM