При развертывании весны веб-приложение mongodb вызывает незаконный доступ: этот экземпляр веб-приложения уже остановлен - PullRequest
0 голосов
/ 06 июня 2019

У меня есть веб-приложение, работающее с использованием spring и mongodb. он работает нормально, пока я не разверну новую версию приложения, используя tomcat deploy api (к тому же, в любом случае).

Я заметил, что подключения монго увеличиваются после развертывания нового приложения

Журналы кота показывают следующее падение

05-Apr-2019 23: 59: 55.579 ИНФОРМАЦИЯ [cluster-ClusterId {value = '5ca72a9851187904a9f63de1', description = 'null'} - 127.0.0.1:27017] org.apache.catalina.loader.WebappClassLoaderBase.checkLoadingStateForleg доступ: этот экземпляр веб-приложения уже остановлен. Не удалось загрузить [com.mongodb.connection.DefaultServerMonitor $ ServerMonitorRunnable]. Следующая трассировка стека генерируется для целей отладки, а также для попытки завершить поток, вызвавший несанкционированный доступ. java.lang.IllegalStateException: незаконный доступ: этот экземпляр веб-приложения уже остановлен. Не удалось загрузить [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 и API Tomcat. Но

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);
    }

Я ожидаю, что сервер после развертывания должен работать с новыми подключениями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...