重新部署Spring,mongodb webapp导致非法访问:此Web应用程序实例已被停止

时间:2019-06-06 11:59:06

标签: spring mongodb tomcat

我有一个使用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);
    }

我希望服务器一旦部署就可以使用新连接。

0 个答案:

没有答案