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

时间:2018-05-29 08:43:32

标签: 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的inputStream       at de.flapdoodle.embed.process.store.Downloader.downloadInputStream(Downloader.java:131)〜[de.flapdoodle.embed.process-2.0.1.jar:na]       at de.flapdoodle.embed.process.store.Downloader.download(Downloader.java:69)〜[de.flapdoodle.embed.process-2.0.1.jar:na]   ....

当我在网络浏览器中点击以下网址时,MongoDB下载得很好:

  

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

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

3 个答案:

答案 0 :(得分:4)

在Windows机器上对我有用的东西

下载zip文件(https://downloads.mongodb.org/win32/mongodb-win32-i386-3.2.2.zip) 手动并将其放入(而不是解压缩)到该文件夹​​中:

C:\Users\<Username>\.embedmongo\win32\

答案 1 :(得分: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;
    }
    
  3. 使用属性mongo.proxy,您可以控制Spring Boot是从FTP服务器还是从外部下载MongoDB。如果设置为true,则从ftp服务器下载。如果没有,那么它会尝试从互联网上下载。

答案 2 :(得分:0)

实际上,问题出在您的代理人(我想是公司代理人)上。<​​/ p>

如果代理不需要身份验证,则只需添加相应的-Dhttp.proxyHost=...-Dhttp.proxyPort=...(或/和“ http s ”相同)即可轻松解决问题。[...]“)作为Eclipse junit Runner中的JVM参数,如此处建议的:https://github.com/learning-spring-boot/learning-spring-boot-2nd-edition-code/issues/2

相关问题