我一直在mongodb之上使用RESTHeart来对Mongodb的REST接口提供基本支持。当我不使用任何过滤器时,它的工作正常,但是当我尝试对documentation中提供的HTTP GET请求应用过滤器时,出现如下所示的stacktrace错误。
要求:http://127.0.0.1:8080/inBeta/donor?filter="{'name':'john'}"
14:15:49.373 [XNIO-1 task-1]错误c.s.restheart.handlers.ErrorHandler
-处理请求java.lang.ClassCastException时出错:java.lang.String无法转换为org.bson.BSONObject
在com.softinstigate.restheart.db.CollectionDAO.lambda $ getCollectionData $ 45(CollectionDAO.java:178)
〜[restheart.jar:0.9.7]
在com.softinstigate.restheart.db.CollectionDAO $$ Lambda $ 20 / 1288164368.accept(未知
来源)〜[na:na]
在java.util.ArrayDeque $ DeqSpliterator.forEachRemaining(未知
来源)〜[na:1.8.0_31]
在java.util.stream.ReferencePipeline $ Head.forEach(未知来源)〜[na:1.8.0_31]
在com.softinstigate.restheart.db.CollectionDAO.getCollectionData(CollectionDAO.java:177)
〜[restheart.jar:0.9.7]
当我不应用任何过滤器时,其返回的JSON对象,但是使用过滤器时,其返回的BSON对象,RESTHeart无法将其转换为JSON响应。将不胜感激,对此问题有任何帮助或指示。
附言RESTHeart没有标签,因此如果有人可以为其创建标签,这将很有帮助。
最佳答案
最后,问题解决了:)
我尝试使用文档中提供的其他API,发现除过滤器外,其他所有功能均正常运行,因此使用以下请求尝试了该请求:
http://127.0.0.1:8080/inBeta/donor?filter=%7B'username':'john'%7D
有效。因此,罪魁祸首是过滤查询周围的双引号。
关于java - RESTHeart过滤器问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28274954/