2016-05-05 71 views
0

我想在jsp页面中实现mongodb文本搜索,但出现错误。以下是我的代码和错误。如果您发现代码有问题,请告诉我。 我们非常感谢您的帮助。提前致谢。在jsp中实现mongodb文本搜索

代码:

Mongo m=new MongoClient("localhost",27017); 
DB db = m.getDB("sagar"); 
String searchText="samosa"; 
DBCollection collection=db.getCollection("review"); 
DBObject searchCmd = new BasicDBObject(); 
searchCmd.put("text",collection); 
searchCmd.put("search",searchText); 

DBCursor cursor = collection.find(searchCmd); 

while(cursor.hasNext()) 
{ 
    System.out.println(cursor.next()); 
} 

错误:

type Exception report 

message An exception occurred processing JSP page /review.jsp at line 33 

description The server encountered an internal error that prevented it from fulfilling this request. 

exception 
org.apache.jasper.JasperException: An exception occurred processing JSP page /review.jsp at line 33 

30:  String id= (String) dbo.get("text"); 
31:  out.println(id+"\n"); 
32: }*/ 
33: while(cursor.hasNext()) 
34: { 
35:  System.out.println(cursor.next()); 
36: } 


Stacktrace: 
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:727) 
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 



root cause 
java.lang.IllegalArgumentException: can't serialize class com.mongodb.DBCollectionImpl 
    org.bson.BasicBSONEncoder._putObjectField(BasicBSONEncoder.java:299) 
    org.bson.BasicBSONEncoder.putObject(BasicBSONEncoder.java:194) 
    org.bson.BasicBSONEncoder.putObject(BasicBSONEncoder.java:136) 
    com.mongodb.DefaultDBEncoder.writeObject(DefaultDBEncoder.java:36) 
    com.mongodb.OutMessage.putObject(OutMessage.java:289) 
    com.mongodb.OutMessage.writeQuery(OutMessage.java:211) 
    com.mongodb.OutMessage.query(OutMessage.java:86) 
    com.mongodb.DBCollectionImpl.find(DBCollectionImpl.java:83) 
    com.mongodb.DBCollectionImpl.find(DBCollectionImpl.java:68) 
    com.mongodb.DBCursor._check(DBCursor.java:498) 
    com.mongodb.DBCursor._hasNext(DBCursor.java:621) 
    com.mongodb.DBCursor.hasNext(DBCursor.java:657) 
    org.apache.jsp.review_jsp._jspService(review_jsp.java:93) 
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:727) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:727) 
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 

回答

0

正试图地图集合对象,以价值与重要文本:

searchCmd.put( “文字”,收藏)

您可能只需要执行searchCmd.put(“search”,searchText); ({“search”:“samosa”})