无法下载嵌入式 MongoDB,在代理后面,使用自动配置脚本

de_*_*xtr 7 eclipse mongodb spring-boot

我有一个使用 Maven 构建的 Spring Boot 项目,我打算在其中使用嵌入式 mongo db。我在 Windows 7 上使用 Eclipse。

正如我在 Internet 选项的“连接”选项卡中所观察到的那样,我支持使用自动配置脚本的代理。当我尝试运行应用程序时出现以下异常。

java.io.IOException:无法为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] ....

当我在 Web 浏览器中点击以下 URL 时,MongoDB 下载得很好:

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

这让我相信我的 Eclipse 中可能缺少一些配置,或者可能是 Maven 项目本身。请帮我找到正确的配置。

d2k*_*2k2 6

在 Windows 机器上对我有用的方法:

手动下载 zip 文件(https://downloads.mongodb.org/win32/mongodb-win32-i386-3.2.2.zip)并将其(非解压)放入此文件夹:

C:\Users\<Username>\.embedmongo\win32\
Run Code Online (Sandbox Code Playgroud)


pvp*_*ran 1

解决您的问题的一种方法是执行以下操作。

  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;
    }
    
    Run Code Online (Sandbox Code Playgroud)

使用该属性,mongo.proxy您可以控制 Spring Boot 是从您的 ftp 服务器还是从外部下载 MongoDB。如果设置为 true,则从 ftp 服务器下载。如果没有,那么它会尝试从互联网下载。