我的微服务没有启动并抛出错误

Posted

技术标签:

【中文标题】我的微服务没有启动并抛出错误【英文标题】:My micro-service does not start and throws an error 【发布时间】:2017-11-11 12:37:04 【问题描述】:

我用的是springcloud+springboot+hibernate:

Caused by: java.lang.VerifyError: class io.netty.channel.nio.NioEventLoop overrides final method pendingTasks.()I
    at java.lang.ClassLoader.defineClass1(Native Method) ~[na:1.8.0_111]
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763) ~[na:1.8.0_111]
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) ~[na:1.8.0_111]
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:467) ~[na:1.8.0_111]
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73) ~[na:1.8.0_111]
    at java.net.URLClassLoader$1.run(URLClassLoader.java:368) ~[na:1.8.0_111]
    at java.net.URLClassLoader$1.run(URLClassLoader.java:362) ~[na:1.8.0_111]
    at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_111]
    at java.net.URLClassLoader.findClass(URLClassLoader.java:361) ~[na:1.8.0_111]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_111]
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) ~[na:1.8.0_111]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_111]
    at io.netty.channel.nio.NioEventLoopGroup.newChild(NioEventLoopGroup.java:94) ~[netty-transport-4.0.37.Final.jar:4.0.37.Final]
    at io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:64) ~[netty-common-4.0.27.Final.jar:4.0.27.Final]
    at io.netty.channel.MultithreadEventLoopGroup.<init>(MultithreadEventLoopGroup.java:49) ~[netty-transport-4.0.37.Final.jar:4.0.37.Final]
    at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:68) ~[netty-transport-4.0.37.Final.jar:4.0.37.Final]
    at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:63) ~[netty-transport-4.0.37.Final.jar:4.0.37.Final]
    at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:54) ~[netty-transport-4.0.37.Final.jar:4.0.37.Final]
    at com.datastax.driver.core.NettyUtil.newEventLoopGroupInstance(NettyUtil.java:139) ~[cassandra-driver-core-3.1.4.jar:na]
    at com.datastax.driver.core.NettyOptions.eventLoopGroup(NettyOptions.java:99) ~[cassandra-driver-core-3.1.4.jar:na]
    at com.datastax.driver.core.Connection$Factory.<init>(Connection.java:769) ~[cassandra-driver-core-3.1.4.jar:na]
    at com.datastax.driver.core.Cluster$Manager.init(Cluster.java:1410) ~[cassandra-driver-core-3.1.4.jar:na]
    at com.datastax.driver.core.Cluster.init(Cluster.java:159) ~[cassandra-driver-core-3.1.4.jar:na]
    at com.datastax.driver.core.Cluster.connectAsync(Cluster.java:330) ~[cassandra-driver-core-3.1.4.jar:na]
    at com.datastax.driver.core.Cluster.connectAsync(Cluster.java:305) ~[cassandra-driver-core-3.1.4.jar:na]
    at com.datastax.driver.core.Cluster.connect(Cluster.java:247) ~[cassandra-driver-core-3.1.4.jar:na]
    at org.springframework.cassandra.config.CassandraCqlSessionFactoryBean.connect(CassandraCqlSessionFactoryBean.java:100) ~[spring-cql-1.5.1.RELEASE.jar:na]
    at org.springframework.cassandra.config.CassandraCqlSessionFactoryBean.afterPropertiesSet(CassandraCqlSessionFactoryBean.java:94) ~[spring-cql-1.5.1.RELEASE.jar:na]
    at org.springframework.data.cassandra.config.CassandraSessionFactoryBean.afterPropertiesSet(CassandraSessionFactoryBean.java:103) ~[spring-data-cassandra-1.5.1.RELEASE.jar:na]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1687) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1624) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    ... 73 common frames omitted

【问题讨论】:

【参考方案1】:

或者,您可以将 netty 排除在您的任一依赖项中。为此,您只需将以下内容添加到您不想使用子依赖项的依赖项中:

<exclusions>
    <exclusion>
        <groupId>io.netty</groupId>
        <artifactId>netty-common</artifactId>
    </exclusion>
    <exclusion>
        <groupId>io.netty</groupId>
        <artifactId>netty-transport</artifactId>
    </exclusion>
</exclusions>

【讨论】:

【参考方案2】:

据我所知,您的课程路径上有多种网络版本...

netty-common-4.0.27.Final netty-transport-4.0.37.Final

这可能是您的问题的原因。

【讨论】:

感谢您的提问,这个问题我已经解决了,原因是我导入了一些未使用的依赖项

以上是关于我的微服务没有启动并抛出错误的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5 App - AJAX Post请求不接受令牌并抛出500内部服务器错误

Spring Cloud:Zuul 抛出“负载均衡器没有可用于客户端的服务器”

Rails caches_page 没有读取实例变量并抛出错误

微服务限流Sentinel讲解

注册不工作并抛出params错误

我在运行查询时启动了 RDS SQL Server(SQL Server Web 版)并抛出了权限被拒绝错误