解决netty-socketio依赖问题

2017-10-12  本文已影响0人  Markwei

在一个项目中用到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>

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

上一篇下一篇

猜你喜欢

热点阅读