Intellij 中的 Cassandra 插件

Cassandra Plugin in Intellij

我正在尝试为 Intellij for cassandra 制作一个插件。搭建好intellij社区源码后,就顺利进入开发部分了。我已经通过 Maven (com.datastax.cassandra:cassandra-driver-core:3.0.0) 添加了 cassandra 驱动程序。但是当我部署插件时,它给了我链接错误(slf4j 记录器)。所以我把它排除在 cassandra 驱动程序库之外。之后我在连接到 cassandra

时遇到了这个异常
ClassCastException: io.netty.channel.epoll.EpollEventLoopGroup cannot be cast to io.netty.channel.EventLoopGroup

这是堆栈跟踪:

java.lang.ClassCastException: io.netty.channel.epoll.EpollEventLoopGroup cannot be cast to io.netty.channel.EventLoopGroup
        at com.datastax.driver.core.NettyUtil.newEventLoopGroupInstance(NettyUtil.java:134)
        at com.datastax.driver.core.NettyOptions.eventLoopGroup(NettyOptions.java:96)
        at com.datastax.driver.core.Connection$Factory.<init>(Connection.java:706)
        at com.datastax.driver.core.Cluster$Manager.init(Cluster.java:1365)
        at com.datastax.driver.core.Cluster.init(Cluster.java:162)
        at com.datastax.driver.core.Cluster.connectAsync(Cluster.java:333)
        at com.datastax.driver.core.Cluster.connect(Cluster.java:283)
        at cassandra.NewMenu.actionPerformed(NewMenu.java:65)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
        at java.awt.Component.processMouseEvent(Component.java:6516)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
        at java.awt.Component.processEvent(Component.java:6281)
        at java.awt.Container.processEvent(Container.java:2229)
        at java.awt.Component.dispatchEventImpl(Component.java:4872)
        at java.awt.Container.dispatchEventImpl(Container.java:2287)
        at java.awt.Component.dispatchEvent(Component.java:4698)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
        at java.awt.Container.dispatchEventImpl(Container.java:2273)
        at java.awt.Window.dispatchEventImpl(Window.java:2719)
        at java.awt.Component.dispatchEvent(Component.java:4698)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:747)
        at java.awt.EventQueue.access0(EventQueue.java:103)
        at java.awt.EventQueue.run(EventQueue.java:706)
        at java.awt.EventQueue.run(EventQueue.java:704)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain.doIntersectionPrivilege(ProtectionDomain.java:76)
        at java.security.ProtectionDomain.doIntersectionPrivilege(ProtectionDomain.java:87)
        at java.awt.EventQueue.run(EventQueue.java:720)
        at java.awt.EventQueue.run(EventQueue.java:718)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain.doIntersectionPrivilege(ProtectionDomain.java:76)
 at java.awt.EventQueue.dispatchEvent(EventQueue.java:717)
        at com.intellij.ide.IdeEventQueue.c(IdeEventQueue.java:866)
        at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:650)
        at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:381)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

如何摆脱这个异常?我曾尝试降级 cassandra 驱动程序版本,但没有成功。

看来您的 Netty 版本有问题,请尝试使用 shaded jar:http://datastax.github.io/java-driver/manual/shaded_jar/