当前位置: 首页 > 知识库问答 >
问题:

使用宽带Wi-Fi(BindException)时,带有MongoDB的Spring Boot应用程序不会运行,但通过移动热点Wi-Fi连接成功运行

黄弘新
2023-03-14

我的Spring boot应用程序使用MongoDB Spring boot starter

    implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'

我的JPA存储库类扩展了org。springframework。数据mongodb。存储库。MongoRepository和我的应用程序类使用这个注释-@EnableMongoRepositories。我使用的是一个无服务器的MongoDB uri,比如MongoDB srv://:@xyz。abc。mongodb。净/xyz

问题是,当我将我的Windows 10笔记本电脑Wi-Fi连接到宽带互联网连接时,我在应用程序启动时得到一个“java.net.BindException:无法分配请求的地址:connect”(下面的堆栈跟踪),而当我将我的Wi-Fi连接到移动热点时,它工作正常。如何找出mongo dB客户端正在使用的冲突端口?

Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.mongodb.client.MongoClient]: Factory method 'mongo' threw exception; nested exception is java.io.UncheckedIOException: java.net.BindException: Cannot assign requested address: connect
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185) ~[spring-beans-5.3.18.jar:5.3.18]
    at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653) ~[spring-beans-5.3.18.jar:5.3.18]
    ... 85 common frames omitted
Caused by: java.io.UncheckedIOException: java.net.BindException: Cannot assign requested address: connect
    at java.base/sun.nio.ch.DatagramSocketAdaptor.connect(DatagramSocketAdaptor.java:120) ~[na:na]
    at java.base/java.net.DatagramSocket.connect(DatagramSocket.java:341) ~[na:na]
    at jdk.naming.dns/com.sun.jndi.dns.DnsClient.doUdpQuery(DnsClient.java:408) ~[jdk.naming.dns:na]
    at jdk.naming.dns/com.sun.jndi.dns.DnsClient.query(DnsClient.java:214) ~[jdk.naming.dns:na]
    at jdk.naming.dns/com.sun.jndi.dns.Resolver.query(Resolver.java:81) ~[jdk.naming.dns:na]
    at jdk.naming.dns/com.sun.jndi.dns.DnsContext.c_getAttributes(DnsContext.java:434) ~[jdk.naming.dns:na]
    at java.naming/com.sun.jndi.toolkit.ctx.ComponentDirContext.p_getAttributes(ComponentDirContext.java:235) ~[na:na]
    at java.naming/com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.getAttributes(PartialCompositeDirContext.java:141) ~[na:na]
    at java.naming/com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.getAttributes(PartialCompositeDirContext.java:129) ~[na:na]
    at java.naming/javax.naming.directory.InitialDirContext.getAttributes(InitialDirContext.java:171) ~[na:na]
    at com.mongodb.internal.dns.DefaultDnsResolver.resolveAdditionalQueryParametersFromTxtRecords(DefaultDnsResolver.java:114) ~[mongodb-driver-core-4.4.2.jar:na]
    at com.mongodb.ConnectionString.<init>(ConnectionString.java:388) ~[mongodb-driver-core-4.4.2.jar:na]
    at org.springframework.boot.autoconfigure.mongo.MongoPropertiesClientSettingsBuilderCustomizer.applyHostAndPort(MongoPropertiesClientSettingsBuilderCustomizer.java:84) ~[spring-boot-autoconfigure-2.6.6.jar:2.6.6]
    at org.springframework.boot.autoconfigure.mongo.MongoPropertiesClientSettingsBuilderCustomizer.customize(MongoPropertiesClientSettingsBuilderCustomizer.java:54) ~[spring-boot-autoconfigure-2.6.6.jar:2.6.6]
    at org.springframework.boot.autoconfigure.mongo.MongoClientFactorySupport.customize(MongoClientFactorySupport.java:55) ~[spring-boot-autoconfigure-2.6.6.jar:2.6.6]
    at org.springframework.boot.autoconfigure.mongo.MongoClientFactorySupport.createMongoClient(MongoClientFactorySupport.java:49) ~[spring-boot-autoconfigure-2.6.6.jar:2.6.6]
    at org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration.mongo(MongoAutoConfiguration.java:55) ~[spring-boot-autoconfigure-2.6.6.jar:2.6.6]
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) ~[na:na]
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
    at java.base/java.lang.reflect.Method.invoke(Method.java:564) ~[na:na]
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ~[spring-beans-5.3.18.jar:5.3.18]
    ... 86 common frames omitted
Caused by: java.net.BindException: Cannot assign requested address: connect
    at java.base/sun.nio.ch.Net.connect0(Native Method) ~[na:na]
    at java.base/sun.nio.ch.Net.connect(Net.java:574) ~[na:na]
    at java.base/sun.nio.ch.DatagramChannelImpl.connect(DatagramChannelImpl.java:1243) ~[na:na]
    at java.base/sun.nio.ch.DatagramSocketAdaptor.connectInternal(DatagramSocketAdaptor.java:91) ~[na:na]
    at java.base/sun.nio.ch.DatagramSocketAdaptor.connect(DatagramSocketAdaptor.java:118) ~[na:na]
    ... 107 common frames omitted
    

共有1个答案

司空玮
2023-03-14

移动数据IP是动态的

您的应用程序似乎在启动时创建了很多连接,这在使用wifi时会因为静态IP而导致问题;另一方面,移动数据具有动态ip

如果是这样的话,请检查你的申请。对于windows,在启动应用程序后,使用下面的命令检查有多少IP正在使用,这将为您提供一个想法。

netstat -ano

如果以上对您的应用程序是正确的,请考虑使用任何可用的数据库连接池库(例如Hikari等)来建立连接,以便您的应用程序创建有限的连接。

 类似资料:
  • 光环板连接Wi-Fi。 启用上传模式 点击启用上传模式。 连接网络 1. 添加事件类积木 当光环板启动时,Wi-Fi类积木 开始连接无线网络()密码(),输入附近Wi-Fi的名称和密码。 2. 网络连接成功后,我们需要一个信号来告诉我们网络连接成功。添加控制类积木 等待(),拖入Wi-Fi类积木 网络已连接?,添加灯光类积木 显示(),让灯环亮起指定图案。 下载代码

  • 1. 开始连接无线网络()密码() 连接到指定无线网络。 示例: 光环板启动后,开始连接到无线网络“Maker-guest”。 2. 网络已连接? 如果网络已连接,报告条件成立。 示例: 光环板启动后,开始连接到无线网络“Maker-guest”。等网络连接成功后,所有LED灯亮起绿色。 3. 识别()语音()秒钟 识别指定语言(汉语或英语)语音指定时间。 示例: 光环板启动后,识别汉语语音3秒钟

  • 扬声器和麦克风 播放音符 播放声音 录制 文字转语音 摄像头 表情测试 图片转文字 相框 拍摄图片

  • 当您将 M600 连上 Wi-Fi 网络后,您就可以使用 M600 上的 Google 应用程式商店来更新 Polar 应用程式并下载更多应用程式到您的 Wear OS by Google 智能手表上。 仅适用于与 Android 手机配对的 Polar M600 如果您的 M600 与手机蓝牙的连接断开,则它将自动连接到保存的 Wi-Fi 网络上。当 Android 手机已连接至 Wi-Fi 或

  • 问题内容: 我正在研究通过多个Android设备之间的Wi-Fi Direct连接进行广播的可能性。我创建了一个简单的消息广播应用程序来测试它是否有效,但是到目前为止,我还无法广播消息。当我尝试发送数据包时,出现 SocketException (网络无法访问): 这是我的代码的本质: 有谁知道在 Android 设备上通过Wi-Fi Direct广播是否真的有效?如果它可以正常工作,我在做什么错

  • PS Vita的系统软件会随着不断的升级而逐渐追加各种功能或强化安全性。请随时升级为最新版本。 身处有可使用接入点的场所时,轻触[系统升级]>[使用Wi-Fi进行升级],可通过Wi-Fi连接互联网,下载最新的升级文件。请遵循画面指示正确操作。 重要 请勿于升级时切断主机的电源或强制取出PS Vita专用存储卡。升级若遭到中断,可能会导致故障。 电池电量低时,可能无法开始升级。 升级中无法使用电源键