首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Netty Verify on runtime,NioEventLoopGroup

Netty Verify on runtime,NioEventLoopGroup
EN

Stack Overflow用户
提问于 2020-03-10 14:27:16
回答 1查看 142关注 0票数 0

我一直在调试我的环境和添加,突然我收到了一个关于Netty的验证错误。

Netty的版本是4.1.46。最终,Java JDK的版本是11编译和运行时。

我使用Guice,但它对netty部分没有任何作用,除了初始化这个类之外,我在之前没有使用Guice的另一个项目设置中也遇到过这个错误。

我已经尝试了无效缓存/重新启动,用maven更新我的依赖项,甚至卸载了intellij,而-noverify什么也不做。

我的代码:

代码语言:javascript
复制
class LoginService @Inject constructor() : AbstractIdleService()
{

    private lateinit var bootstrap : ServerBootstrap

    @Inject private lateinit var configuration: RSEEnvironment

    @Inject private lateinit var channelHandler: LoginChannelHandler

    private val bossGroup = NioEventLoopGroup(1)

    private val workerGroup = NioEventLoopGroup(Runtime.getRuntime().availableProcessors())

    private lateinit var future: ChannelFuture

    override fun startUp()
    {

        val hostAddress = configuration.getString("default_host")

        val hostPort = configuration.getInt("default_port")

        bootstrap = ServerBootstrap()

        bootstrap
            .group(bossGroup, workerGroup)
            .channel(NioServerSocketChannel::class.java)
            .childHandler(channelHandler)
            .option(ChannelOption.SO_KEEPALIVE, true)
            .option(ChannelOption.TCP_NODELAY, true)

        future = bootstrap.bind(hostAddress, hostPort).syncUninterruptibly()

        future.channel().closeFuture().sync()

    }

    override fun shutDown()
    {

        workerGroup.shutdownGracefully()

    }

    @Provides fun fetchEnvironment() = RSEEnvironment()

}

错误:

代码语言:javascript
复制
Caused by: java.lang.VerifyError: class io.netty.channel.SingleThreadEventLoop overrides final method io.netty.util.concurrent.SingleThreadEventExecutor.pendingTasks()I
    at java.base/java.lang.ClassLoader.defineClass1(Native Method)
    at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
    at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
    at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800)
    at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698)
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621)
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    at java.base/java.lang.ClassLoader.defineClass1(Native Method)
    at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
    at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
    at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800)
    at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698)
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621)
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    at io.netty.channel.nio.NioEventLoopGroup.newChild(NioEventLoopGroup.java:145)
    at io.netty.channel.nio.NioEventLoopGroup.newChild(NioEventLoopGroup.java:37)
    at io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:77)
    at io.netty.channel.MultithreadEventLoopGroup.<init>(MultithreadEventLoopGroup.java:52)
    at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:96)
    at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:91)
    at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:72)
    at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:52)
    at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:44)
    at rs.emulator.service.login.LoginService.<init>(LoginService.kt:25)
    at rs.emulator.service.login.LoginService$$FastClassByGuice$$f37422b6.newInstance(<generated>)

-更新

如果我在我的项目中创建另一个模块,并且只执行基本的代码,那么它在同一个maven父级上工作得很好。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-10 21:01:25

这听起来像是类路径问题。在我看来,在类路径上有多个版本的netty。确保你只有一个。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60612495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档