我用mina做的一个收发报文的程序,长链接,如果发一两个包不会报错,但如果并发好多包,就会包下面的问题。
一个包一个包的发频繁了有时也会出问题,搞不明白为什么,我原来以为是中文编码的问题,抱过这样的错,但现在已经解决了,而且同样的中文包发一次不会出问题,难道发多了就会有问题吗?小弟甚是费解?
求高手解决!
org.apache.mina.filter.codec.ProtocolDecoderException: java.lang.IllegalArgumentException
at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:161)
at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:298)
at org.apache.mina.common.support.AbstractIoFilterChain.access$1200(AbstractIoFilterChain.java:53)
at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:647)
at org.apache.mina.filter.support.SSLHandler.flushScheduledEvents(SSLHandler.java:276)
at org.apache.mina.filter.SSLFilter.messageReceived(SSLFilter.java:427)
at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:298)
at org.apache.mina.common.support.AbstractIoFilterChain.access$1200(AbstractIoFilterChain.java:53)
at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:647)
at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:220)
at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:266)
at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:987)
at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:528)
at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.IllegalArgumentException
at java.nio.Buffer.position(Buffer.java:218)
at org.apache.mina.common.support.BaseByteBuffer.position(BaseByteBuffer.java:123)