您的位置:首页 > 编程语言 > Go语言

JFinal与Mogodb集成的问题

2016-04-27 17:33 435 查看
摘要: 系统启动后,web应用隔一会不操作就会抛出异常,使用MongoKit查询不到数据。

相关配置如下

JFinal Config配置

@Override
public void configPlugin(Plugins me) {
// MongodbPlugin插件配置
MongodbPlugin mongodbPlugin = createdMongodbPlugin();
me.add(mongodbPlugin);
}

public static MongodbPlugin createdMongodbPlugin() {
String host = "192.168.1.120";
int port = 27017;
String database = "test";
String username = "mongo";
String password = "123456";
MongodbPlugin mongodbPlugin = new MongodbPlugin(host, port, database, username, password);
return mongodbPlugin;
}

MongodbPlugin插件

public class MongodbPlugin implements IPlugin {
protected final Log logger = Log.getLog(getClass());

/**
* 默认主机
*/
private static final String DEFAULT_HOST = "127.0.0.1";

/**
* 默认端口
*/
private static final int DEFAUL_PORT = 27017;
/**
* MongoClient
*/
private MongoClient client;

/**
* 主机
*/
private String host;

/**
* 端口
*/
private int port;

/**
* 数据库
*/
private String database;

/**
* 用户名
*/
private String username;

/**
* 密码
*/
private String password;
public MongodbPlugin(String database) {
this.host = DEFAULT_HOST;
this.port = DEFAUL_PORT;
this.database = database;
}
public MongodbPlugin(String host, int port, String database, String username, String password) {
this.host = host;
this.port = port;
this.database = database;
this.username = username;
this.password = password;
}
@Override
public boolean start() {

String url = "mongodb://{username}:{password}@{host}:{port}/{database}";
url = StringUtils.replaceEach(url, new String[]{"{username}","{password}","{host}","{port}","{database}"}, new String[]{username,password,host,String.valueOf(port),database});

client = new MongoClient((new MongoClientURI(url)));
MongoKit.init(client, database);
isStarted = true;

return true;
}
@Override
public boolean stop() {
if (client != null) {
client.close();
}
return true;
}
}

Controller入口

public void list() {
String name = getPara("name");

//设置排序
Map<String, Object> sort 
3ff0
;= new HashMap<String, Object>();
sort.put("createTime", "desc");

//设置查询条件
Map<String, Object> like = new HashMap<String, Object>();
like.put("name", name);

//分页查询
int pageNumber = getParaToInt(0, 1);
Page<Record> page = MongoKit.paginate(Tables.d_tag.toString(), pageNumber, PAGE_SIZE, null, like, sort);

//保存结果返回页面
setAttr("page", page);

render("list.html");
}

Exception信息

2016-04-27 17:18:12
[ERROR]-[Thread: qtp250075633-23]-[com.jfinal.core.ActionHandler.handle()]: /tag/list
com.mongodb.MongoSocketWriteException: Exception sending message
at com.mongodb.connection.InternalStreamConnection.translateWriteException(InternalStreamConnection.java:462)
at com.mongodb.connection.InternalStreamConnection.sendMessage(InternalStreamConnection.java:205)
at com.mongodb.connection.UsageTrackingInternalConnection.sendMessage(UsageTrackingInternalConnection.java:95)
at com.mongodb.connection.DefaultConnectionPool$PooledConnection.sendMessage(DefaultConnectionPool.java:424)
at com.mongodb.connection.CommandProtocol.sendMessage(CommandProtocol.java:209)
at com.mongodb.connection.CommandProtocol.execute(CommandProtocol.java:111)
at com.mongodb.connection.DefaultServer$DefaultServerProtocolExecutor.execute(DefaultServer.java:159)
at com.mongodb.connection.DefaultServerConnection.executeProtocol(DefaultServerConnection.java:286)
at com.mongodb.connection.DefaultServerConnection.command(DefaultServerConnection.java:173)
at com.mongodb.operation.CommandOperationHelper.executeWrappedCommandProtocol(CommandOperationHelper.java:215)
at com.mongodb.operation.CommandOperationHelper.executeWrappedCommandProtocol(CommandOperationHelper.java:206)
at com.mongodb.operation.CommandOperationHelper.executeWrappedCommandProtocol(CommandOperationHelper.java:112)
at com.mongodb.operation.FindOperation$1.call(FindOperation.java:487)
at com.mongodb.operation.FindOperation$1.call(FindOperation.java:482)
at com.mongodb.operation.OperationHelper.withConnectionSource(OperationHelper.java:239)
at com.mongodb.operation.OperationHelper.withConnection(OperationHelper.java:212)
at com.mongodb.operation.FindOperation.execute(FindOperation.java:482)
at com.mongodb.operation.FindOperation.execute(FindOperation.java:79)
at com.mongodb.Mongo.execute(Mongo.java:772)
at com.mongodb.Mongo$2.execute(Mongo.java:759)
at com.mongodb.DBCursor.initializeCursor(DBCursor.java:851)
at com.mongodb.DBCursor.hasNext(DBCursor.java:152)
at com.jfinal.ext.plugin.monogodb.MongoKit.paginate(MongoKit.java:125)
at com.mlh.buss.tag.TagController.list(TagController.java:44)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.jfinal.aop.Invocation.invoke(Invocation.java:73)
at com.mlh.interceptor.GlobalInterceptor.intercept(GlobalInterceptor.java:58)
at com.jfinal.aop.Invocation.invoke(Invocation.java:67)
at com.mlh.interceptor.ConditionInterceptor.doIntercept(ConditionInterceptor.java:31)
at com.jfinal.aop.PrototypeInterceptor.intercept(PrototypeInterceptor.java:26)
at com.jfinal.aop.Invocation.invoke(Invocation.java:67)
at com.jfinal.core.ActionHandler.handle(ActionHandler.java:74)
at com.mlh.handler.GlobalHandler.handle(GlobalHandler.java:25)
at com.jfinal.ext.handler.ContextPathHandler.handle(ContextPathHandler.java:47)
at com.jfinal.core.JFinalFilter.doFilter(JFinalFilter.java:72)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1307)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:453)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:560)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1072)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:382)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1006)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
at org.eclipse.jetty.server.Server.handle(Server.java:365)
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:485)
at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:926)
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:988)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:635)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:628)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.net.SocketException: Connection reset by peer: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109)
at java.net.SocketOutputStream.write(SocketOutputStream.java:153)
at com.mongodb.connection.SocketStream.write(SocketStream.java:75)
at com.mongodb.connection.InternalStreamConnection.sendMessage(InternalStreamConnection.java:201)
... 59 more
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  JFinal Mongodb