Невозможно загрузить встроенный MongoDB за прокси-сервером, используя скрипт автоматической настройки - PullRequest
0 голосов
/ 29 мая 2018

У меня есть проект Spring Boot, построенный с использованием Maven, в котором я собираюсь использовать встроенную базу данных mongo.Я использую Eclipse в Windows 7.

Я нахожусь за прокси-сервером, который использует сценарий автоматической настройки, как я наблюдал на вкладке «Подключение» в окне «Свойства обозревателя».При попытке запустить приложение я получаю следующее исключение:

java.io.IOException: Не удалось открыть inputStream для https://downloads.mongodb.org/win32/mongodb-win32-i386-3.2.2.zip в файле de.flapdoodle.embed.process.store.Downloader.downloadInputStream (Downloader.java:131) ~ [de.flapdoodle.embed.process-2.0.1.jar: na] в de.flapdoodle.embed.process.store.Downloader.download (Downloader.java:69)~ [de.flapdoodle.embed.process-2.0.1.jar: na] ....

MongoDB загружается очень хорошо, когда я нажимаю следующий URL в своем веб-браузере:

https://downloads.mongodb.org/win32/mongodb-win32-i386-3.2.2.zip

Это наводит меня на мысль, что, возможно, мне не хватает какой-то конфигурации в моем Eclipse или, возможно, сам проект maven.Пожалуйста, помогите мне найти правильную конфигурацию.

Ответы [ 2 ]

0 голосов
/ 15 марта 2019

Действительно, проблема в вашем прокси (я полагаю, в корпоративном).

Если прокси-сервер не требует аутентификации, вы можете легко решить вашу проблему, просто добавив соответствующие -Dhttp.proxyHost=... и -Dhttp.proxyPort=...(или / и то же самое с "http s . [...]") в качестве аргументов JVM в вашем Runner eclipse junit, как предлагается здесь: https://github.com/learning-spring-boot/learning-spring-boot-2nd-edition-code/issues/2

0 голосов
/ 29 мая 2018

Одним из решений вашей проблемы является следующее:

  1. Загрузите MongoDB и поместите его на ftp-сервер, который находится внутри вашей корпоративной сети (для которого вам не нужен прокси-сервер).

  2. Затем напишите конфигурацию в своем проекте следующим образом:

    @Bean
    @ConditionalOnProperty("mongo.proxy")
    public IRuntimeConfig embeddedMongoRuntimeConfig() {
        final Command command = Command.MongoD;
        final IRuntimeConfig runtimeConfig = new RuntimeConfigBuilder()
            .defaults(command)
            .artifactStore(new ExtractedArtifactStoreBuilder()
                .defaults(command)
                .download(new DownloadConfigBuilder()
                    .defaultsForCommand(command)
                    .downloadPath("your-ftp-path")
                    .build())
                .build())
            .build();
        return runtimeConfig;
    }
    

С помощью свойства mongo.proxy вы можете контролировать, будет ли загружаться Spring BootMongoDB с вашего FTP-сервера или извне.Если установлено значение true, то оно загружается с ftp-сервера.Если нет, то он пытается загрузить из Интернета.

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