Tag: 安装

Java的NIO内存映射docker装入文件失败

我最近运行到docker,并将我的Java应用程序部署到tomcat泊坞窗容器。 但是我遇到了一个关于NIO内存映射文件的非常具体的错误: File mark = new File("/location/to/docker/mounted/file"); m_markFile = new RandomAccessFile(mark, "rw"); MappedByteBuffer m_byteBuffer = m_markFile.getChannel().map(MapMode.READ_WRITE, 0, 20); 最后一个函数调用失败,如下所示: Caused by: java.io.IOException: Invalid argument at sun.nio.ch.FileChannelImpl.map0(Native Method) at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:906) at com.dianping.cat.message.internal.MessageIdFactory.initialize(MessageIdFactory.java:127) at com.dianping.cat.message.internal.DefaultMessageManager.initialize(DefaultMessageManager.java:197) … 34 more 我不知道发生了什么事。 我在我的Mac环境中testing过,没关系。 在tomcat docker容器中,我将文件位置更改为正常的文件path,也没关系。 看来只发生在docker安装的文件。 其他信息: root@4520355ed3ac:/usr/local/tomcat# uname -a Linux 4520355ed3ac 4.4.27-boot2docker #1 SMP Tue Oct 25 19:51:49 UTC […]