Hazelcast 3.4 IQueue报价

时间:2015-02-11 21:24:54

标签: hazelcast nosuchmethoderror

在Hazelcast 3.4中,我使用带有时间参数的IQueue商品获得NoSuchMethodError异常。它在Hazelcast 3.2中运行良好。代码编译并运行,但是当它执行offer时,它会抛出异常。

这是BlockingQueue的方法签名:

  

public boolean offer(E e,long l,TimeUnit tu)抛出InterruptedException;

IQueue<GLBCSchema> queue=hzMQUtils.getQueue("myQueueName");
...
GLBCSchema tmpMsg=new GLBCSchema();
//queue.offer(tmpMsg);   <=== works!
queue.offer(tmpMsg, 3, TimeUnit.SECONDS); <== throws NoSuchMethodError
Exception in thread "main" java.lang.NoSuchMethodError: com.hazelcast.core.IQueue.offer(Lgblx/gis/rtapi/facade/internal/GLBCSchema;JLjava/util/concurrent/TimeUnit;)Z

这是一个错误还是Hazelcast删除了此优惠方法?

THX!

1 个答案:

答案 0 :(得分:0)

没关系。我想到了。删除类型声明后,它就可以了。

自:

IQueue<GLBCSchema> queue=hzMQUtils.getQueue("myQueueName");

要:

IQueue queue=hzMQUtils.getQueue("myQueueName");

我不确定他们为什么要做这个改变。 (关于JDK https://bugs.openjdk.java.net/browse/JDK-8064803的参考错误)