【问题标题】:MongoDb 3.0.1 java driver GridFs errorMongoDb 3.0.1 java驱动程序GridFs错误
【发布时间】:2015-07-23 14:23:57
【问题描述】:

我正在将一个应用程序升级到 Mongo java 驱动程序 3.0.1。除了 GridFs 文件保存之外,一切都运行良好。它适用于旧的 java 驱动程序(2.12.4)。现在我正在使用 mongodb-driver-core y mongodb-driver 3.0.1。

我的代码:

DB mongoDbFiles;
GridFS attachFile;
GridFSInputFile gfsFile;
mongoDbFiles = mongo.getDB("UserWebFiles");
attachFile = new GridFS(mongoDbFiles, "UserFiles");
    ..........
gfsFile = attachFile.createFile(new File("C:/dxl/" + (String) vFileNames.get(k)));
gfsFile.setFilename((String) vFileNames.get(k));
gfsFile.save();

在保存中给出错误: com.mongodb.MongoException: 无法保存块

原因:java.io.IOException: Stream Closed

新驱动程序中的 GridF 有什么变化吗?

正如我所说,它适用于驱动程序 2.12.4。 Java 版本 8(jdk 1.8.0_25 - 32 位)

提前致谢,

奥古斯托

【问题讨论】:

    标签: java mongodb gridfs


    【解决方案1】:

    我在 mongo-driver-3.0.1.jar 文件中发现了问题。我更正了 GrisFS.createFile 函数之一。我再次编译了jar文件,现在它运行良好。

    如果有人有这个问题,我可以发送 jar 文件。我会尝试将更正发送给 Mongo。

    【讨论】:

    • MongoDB 开发团队回答:这已经在 3.0.x 和 master 上修复,将在 3.0.2 和更高版本的 3.1 中发布。
    • 感谢@Augusto 报告问题!
    • @Augusto 我可以知道你做了什么改变我也面临Mongo Exception: Cannot save chunks 当我尝试在 MongoDB 中保存文件时。我使用 mongo-java-driver 3.0.1
    • @Vicky - 修复的票在这里:jira.mongodb.org/browse/JAVA-1813
    • ok @Ross 所以我必须将 jar 文件编辑为 public GridFSInputFile createFile(final File file) throws IOException { FileInputStream fileInputStream = new FileInputStream(file); try { return createFile(new FileInputStream(file), file.getName(), true); } finally { fileInputStream.close(); } } 并重新编译它吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-13
    • 1970-01-01
    • 2018-07-10
    • 2019-01-26
    • 1970-01-01
    相关资源
    最近更新 更多