美文网首页
解决netty-socketio依赖问题

解决netty-socketio依赖问题

作者: Markwei | 来源:发表于2017-10-12 13:46 被阅读0次

    在一个项目中用到netty-socketio碰到一个问题,有新手碰到这个问题可能会纠结不少时间,写出来以供参考,有碰到类似问题的也可以节省点儿时间。。

    在项目源码编译时报错,错误截图如下

    Paste_Image.png

    错误信息显示 io.netty.util.internal.PlatformDependent

    反编译netty-transport-4.1.5.Final 的代码可以看到

    ChannelOutboundBuffer 里有一行代码 如下

    AtomicIntegerFieldUpdater unwritableUpdater = PlatformDependent.newAtomicIntegerFieldUpdater(ChannelOutboundBuffer.class, "unwritable");
    

    PlatformDependent 是在netty-common-4.1.5.Final的包,同样反编译查看源码,并没有发现newAtomicLongFieldUpdater 这样一个方法。

    同样4.1.5.final 的包竟然出现方法找不到的问题,这个不会是坑爹专用版吧???

    找到netty-all-4.1.5.Final 看了下源码 发现 ChannelOutboundBuffer的实现已经完全不一样了。

    索性把netty的分包的依赖全部替换掉, 修改maven的pom文件

     <dependency>
          <groupId>com.corundumstudio.socketio</groupId>
          <artifactId>netty-socketio</artifactId>
          <version>1.7.13</version>
          <exclusions>
            <exclusion>
              <groupId>io.netty</groupId>
              <artifactId>netty-common</artifactId>
            </exclusion>
            <exclusion>
              <groupId>io.netty</groupId>
              <artifactId>netty-transpor</artifactId>
            </exclusion>
            <exclusion>
              <groupId>io.netty</groupId>
              <artifactId>netty-buffer</artifactId>
            </exclusion>
            <exclusion>
              <groupId>io.netty</groupId>
              <artifactId>netty-handler</artifactId>
            </exclusion>
            <exclusion>
              <groupId>io.netty</groupId>
              <artifactId>netty-codec-http</artifactId>
            </exclusion>
            <exclusion>
              <groupId>io.netty</groupId>
              <artifactId>netty-codec</artifactId>
            </exclusion>
            <exclusion>
              <groupId>io.netty</groupId>
              <artifactId>netty-resolver</artifactId>
            </exclusion>
            <exclusion>
              <groupId>io.netty</groupId>
              <artifactId>netty-transport</artifactId>
            </exclusion>
            <exclusion>
              <groupId>io.netty</groupId>
              <artifactId>netty-transport-native-epoll</artifactId>
            </exclusion>
          </exclusions>
    </dependency>
    

    自己引入netty-all的依赖

    
    <dependency>
          <groupId>io.netty</groupId>
          <artifactId>netty-all</artifactId>
          <version>4.1.16.Final</version>
     </dependency>
    
    

    好了, 这样就不会有问题了

    相关文章

      网友评论

          本文标题:解决netty-socketio依赖问题

          本文链接:https://www.haomeiwen.com/subject/mwjnyxtx.html