8°

mina错误---java.nio.InvalidMarkException

原来项目是从maven中搜索出来的mina的client-server版本,可以TCP正常工作,后来又用到了串口,发现当串口发送数据时出现:java.lang.AbstractMethodError: org.apache.mina.transport.serial.SerialSessionImpl$SerialIoProcessor.write(Lorg/apache/mina/core/session/IoSession;Lorg/apache/mina/core/write/WriteRequest;),根据这个帖子所说,知道是版本不对的原因,所以删除了client-server版本,下了mfz-rxtx-2.2-20081207-win-x64,将rxtxParallel/rxtxSerial.dll放到windows/system32下,将RXTXcomm.jar放到jkd/jre/lib/ext/下,同时在项目中引入rxtxcomm.jar,还做如下处理:

pom.xml从Maven中导mina-transport-serial 2.1.3时总是会将mina-integration-beans依赖导入,而它又用到了log4j低版本,而我的springboot项目中已经用到了高版本的log4j,当将低版本log4j和mina-integration-beans都排除又发现没有了mina-core,所以pom.xml中改为如下:

<!-- https://mvnrepository.com/artifact/org.apache.mina/mina-transport-serial -->
<dependency>
    <groupId>org.apache.mina</groupId>
    <artifactId>mina-transport-serial</artifactId>
    <version>2.1.3</version>
    <exclusions>
        <exclusion>
            <groupId>org.apache.mina</groupId>
            <artifactId>mina-integration-beans</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.apache.mina</groupId>
            <artifactId>mina-core</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
    &lt;/exclusion&gt;
&lt;/exclusions&gt;

</dependency> <!-- https://mvnrepository.com/artifact/org.apache.mina/mina-core --> <dependency> <groupId>org.apache.mina</groupId> <artifactId>mina-core</artifactId> <version>2.1.3</version> </dependency>

程序正常了,可以发和收串口数据,但又出现:

Exception in thread "Thread-10" java.nio.InvalidMarkException
    at java.nio.Buffer.reset(Buffer.java:306)
    at org.apache.mina.core.buffer.AbstractIoBuffer.reset(AbstractIoBuffer.java:425)
    at org.apache.mina.transport.serial.SerialSessionImpl.flushWrites(SerialSessionImpl.java:196)
    at org.apache.mina.transport.serial.SerialSessionImpl.access$300(SerialSessionImpl.java:51)
    at org.apache.mina.transport.serial.SerialSessionImpl$WriteWorker.run(SerialSessionImpl.java:156)

只不过不影响正常的收发数据,目前还不知道原因。

本文由【whoisliang】发布于开源中国,原文链接:https://my.oschina.net/u/2963604/blog/3158106

全部评论: 0

    我有话说: