【发布时间】:2021-03-22 11:00:32
【问题描述】:
Mongo Java 驱动程序:3.6.0。 Java:1.8
我有一个保存在 GridFs 中的文件,当我尝试按照 MongoDb 文档所述打开下载流时,我收到一个转换异常。
打开下载流
ObjectId fileId; //The id of a file uploaded to GridFS, initialize to valid file id
GridFSDownloadStream downloadStream = gridFSBucket.openDownloadStream(fileId);
int fileLength = (int) downloadStream.getGridFSFile().getLength();
byte[] bytesToWriteTo = new byte[fileLength];
downloadStream.read(bytesToWriteTo); // >>>>>> Line failing
downloadStream.close();
Caused by: java.lang.ClassCastException: java.lang.Double cannot be cast to java.lang.Integer
at org.bson.Document.getInteger(Document.java:170) ~[bson-3.6.0.jar:na]
at com.mongodb.client.gridfs.GridFSDownloadStreamImpl.getChunk(GridFSDownloadStreamImpl.java:221) ~[mongodb-driver-3.6.0.jar:na]
at com.mongodb.client.gridfs.GridFSDownloadStreamImpl.getBuffer(GridFSDownloadStreamImpl.java:275) ~[mongodb-driver-3.6.0.jar:na]
at com.mongodb.client.gridfs.GridFSDownloadStreamImpl.read(GridFSDownloadStreamImpl.java:100) ~[mongodb-driver-3.6.0.jar:na]
at com.mongodb.client.gridfs.GridFSDownloadStreamImpl.read(GridFSDownloadStreamImpl.java:90) ~[mongodb-driver-3.6.0.jar:na]
at com.xxx.proyect.service.conf.service.PdfService.getPdf(PdfService.java:63) ~[module-pdfs-1.8.0-SNAPSHOT.jar:na]
... 83 common frames omitted
【问题讨论】:
-
您可以尝试使用更新的驱动程序(您可以尝试查询 - 查找有关存储文件的信息并查看它是否有效)。 MongoDB服务器版本是多少?
-
我不能使用较新的版本,但它应该在 3.6.0 中工作,因为我正在关注 mongo 3.6 java 驱动程序示例。服务器是 3.6.10
标签: java mongodb classcastexception gridfs