2016-05-19 235 views
0

我在OPC客戶端代碼中收到以下錯誤。 我開始我的客戶端 - 關閉它 - 再次啓動以查看以下錯誤。 很明顯,以前的運行造成了這種情況。但我無法弄清楚它是什麼。OPC客戶端問題

當我比較我的第一次運行jstack和關閉。我沒有看到來自opc的任何正在運行的線程。

有沒有人看過這個問題?或者 有沒有其他一些方法可以調試該問題?

2016-05-19 16:35:53,564 WARN [netty-event-loop-0] io.netty.channel.ChannelInitializer - Failed to initialize a channel. Closing: [id: 0xe25cac5b] java.lang.ExceptionInInitializerError 
     at com.digitalpetri.opcua.stack.client.UaTcpStackClient$1.initChannel(UaTcpStackClient.java:340) 
     at com.digitalpetri.opcua.stack.client.UaTcpStackClient$1.initChannel(UaTcpStackClient.java:337) 
     at io.netty.channel.ChannelInitializer.channelRegistered(ChannelInitializer.java:69) 
     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRegistered(AbstractChannelHandlerContext.java:133) 
     at io.netty.channel.AbstractChannelHandlerContext.fireChannelRegistered(AbstractChannelHandlerContext.java:119) 
     at io.netty.channel.DefaultChannelPipeline.fireChannelRegistered(DefaultChannelPipeline.java:733) 
     at io.netty.channel.AbstractChannel$AbstractUnsafe.register0(AbstractChannel.java:449) 
     at io.netty.channel.AbstractChannel$AbstractUnsafe.access$100(AbstractChannel.java:377) 
     at io.netty.channel.AbstractChannel$AbstractUnsafe$1.run(AbstractChannel.java:423) 
     at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:380) 
     at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:357) 
     at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116) 
     at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.IllegalArgumentException: 'awaiting-handshake' is already in use 
     at io.netty.util.UniqueName.<init>(UniqueName.java:53) 
     at io.netty.util.AttributeKey.<init>(AttributeKey.java:47) 
     at io.netty.util.AttributeKey.valueOf(AttributeKey.java:39) 
     at com.digitalpetri.opcua.stack.client.handlers.UaTcpClientAcknowledgeHandler.<clinit>(UaTcpClientAcknowledgeHandler.java:44) 
     ... 13 more 
+0

這是什麼版本的庫? –

+0

1.0.1 @KevinHerron – nandini

回答

0

看起來你可能有某種ClassLoader問題 - UaTcpAcknowledgeHandler的靜態最終字段被定義了兩次。

當你「關閉」你的客戶時會發生什麼?

+0

當我關閉客戶端時,它關閉正常。我的意思是沒有餘留的線程或任何異常。 – nandini

+0

JVM是關閉還是不關閉?將庫升級到最新版本也許值得。我已經看到客戶端SDK被用在其他應用程序中,並且乾淨地關閉,所以你在這裏加載和卸載的方式有些問題。 –

+0

我有一個驅動程序..所以JVM不關閉。我有Java 8.最新的OPC libs。你是對的,如果我關閉了JVM並重新啓動它,這個問題就不會出現,因爲這是一個乾淨的開始。但在我的情況下,這是不可能的,我必須讓JVM運行。 – nandini