我有一个使用spring和mongodb运行的Web应用程序。在我使用tomcat deploy api部署应用程序的新版本之前,它一直运行良好(无论如何)。
我发现一旦部署新应用程序,mongo连接就会增加
tomcat日志显示以下崩溃
2019年4月5日23:59:55.579信息[cluster-ClusterId {value ='5ca72a9851187904a9f63de1',description ='null'}-127.0.0.1:27017] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading非法访问:此Web应用程序实例已经停止。无法加载[com.mongodb.connection.DefaultServerMonitor $ ServerMonitorRunnable]。出于调试目的以及试图终止导致非法访问的线程,将抛出以下堆栈跟踪。 java.lang.IllegalStateException:非法访问:此Web应用程序实例已被停止。无法加载[com.mongodb.connection.DefaultServerMonitor $ ServerMonitorRunnable]。出于调试目的以及试图终止导致非法访问的线程,将抛出以下堆栈跟踪。 在org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1383) 在org.apache.catalina.loader.WebappClassLoaderBase.checkStateForClassLoading(WebappClassLoaderBase.java:1371) 在org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1224) 在org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1186) 在ch.qos.logback.classic.spi.PackagingDataCalculator.loadClass(PackagingDataCalculator.java:204) 在ch.qos.logback.classic.spi.PackagingDataCalculator.bestEffortLoadClass(PackagingDataCalculator.java:228) 在ch.qos.logback.classic.spi.PackagingDataCalculator.computeBySTEP(PackagingDataCalculator.java:135) 在ch.qos.logback.classic.spi.PackagingDataCalculator.populateUncommonFrames(PackagingDataCalculator.java:111) 在ch.qos.logback.classic.spi.PackagingDataCalculator.populateFrames(PackagingDataCalculator.java:104) 在ch.qos.logback.classic.spi.PackagingDataCalculator.calculate(PackagingDataCalculator.java:58) 在ch.qos.logback.classic.spi.ThrowableProxy.calculatePackagingData(ThrowableProxy.java:142) 在ch.qos.logback.classic.spi.LoggingEvent。(LoggingEvent.java:122) 在ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:419) 在ch.qos.logback.classic.Logger.filterAndLog_0_Or3Plus(Logger.java:383) 在ch.qos.logback.classic.Logger.warn(Logger.java:692) 在com.mongodb.diagnostics.logging.SLF4JLogger.warn(SLF4JLogger.java:91) 在com.mongodb.connection.DefaultServerMonitor $ ServerMonitorRunnable.run(DefaultServerMonitor.java:151) 在java.base / java.lang.Thread.run(Thread.java:844)
我以前曾将war文件复制到tomcat目录。现在,我使用curl命令和tomcat API。但是
private ServerAddress server = new ServerAddress("127.0.0.1", 27017);
///if server requires authentication
//private List<MongoCredential> creds = new ArrayList<MongoCredential>();
public MongoClient mongoClient() {
MongoClientOptions.Builder optionsBuilder = new MongoClientOptions.Builder();
optionsBuilder.connectionsPerHost(8);
optionsBuilder.maxWaitTime(1500);
optionsBuilder.connectTimeout(1000);
optionsBuilder.socketTimeout(1500);
optionsBuilder.socketKeepAlive(true);
MongoClientOptions options = optionsBuilder.build();
return new MongoClient(server, options);
// creds.add(MongoCredential.createCredential("username", "database", "password".toCharArray()));
// return new MongoClient(server, creds, options);
}
我希望服务器一旦部署就可以使用新连接。