我有一个使用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项目本身。 请帮我找到合适的配置。
答案 0 :(得分:4)
在Windows机器上对我有用的东西
下载zip文件(https://downloads.mongodb.org/win32/mongodb-win32-i386-3.2.2.zip) 手动并将其放入(而不是解压缩)到该文件夹中:
C:\Users\<Username>\.embedmongo\win32\
答案 1 :(得分:1)
您的问题的一个解决方案是执行以下操作。
下载MongoDB并将其放在公司网络内的ftp服务器上(您不需要代理服务器)。
然后在您的项目中编写一个配置
@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 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