我正在尝试为嵌入Mongo&Kafka的Spring Boot设置一个JUnit测试:-
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE,
classes = {AccountingApplication.class})
@DataMongoTest
public class BaseEmbeddedTest {
@ClassRule
public static KafkaEmbedded embeddedKafka = new KafkaEmbedded(1, true);
@Autowired
private MongoTemplate mongoTemplate;
@Test
public void emptyTest(){
}
}
src/test/resources/application.yml:-
spring:
data:
mongodb:
port: 0
kafka:
bootstrap-servers: ${spring.embedded.kafka.brokers}
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [de.flapdoodle.embed.mongo.config.IMongodConfig]: Factory method 'embeddedMongoConfiguration' threw exception; nested exception is java.net.BindException: Cannot assign requested address: JVM_Bind
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:189)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:588)
... 140 more
Caused by: java.net.BindException: Cannot assign requested address: JVM_Bind
at java.net.DualStackPlainSocketImpl.bind0(Native Method)
at java.net.DualStackPlainSocketImpl.socketBind(DualStackPlainSocketImpl.java:106)
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387)
at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:190)
at java.net.ServerSocket.bind(ServerSocket.java:375)
at java.net.ServerSocket.<init>(ServerSocket.java:237)
at de.flapdoodle.embed.process.runtime.Network.getFreeServerPort(Network.java:80)
at org.springframework.boot.autoconfigure.mongo.embedded.EmbeddedMongoAutoConfiguration.embeddedMongoConfiguration(EmbeddedMongoAutoConfiguration.java:147)
版本:-
dependencyManagementPluginVersion = '1.0.3.RELEASE'
springBootVersion = '1.5.6.RELEASE'
springCloudVersion = 'Dalston.SR2'
projectVersion = '0.0.1-SNAPSHOT'
javaVersion = 1.8
kotlinVersion = '1.1.4'
以下注释:@datamongotest
导致Spring Boot创建一个嵌入式Mongo实例。异常消息告诉我们,嵌入的Mongo实例无法启动,因为它试图运行的端口上已经有一个进程在运行。
嵌入式Mongo实例由EmbeddedMongoAutoConfiguration
配置,Spring Boot应用的策略--端口分配--如下所示:
if configured Mongo port > 0 then
use the configured port
else
assign a random port
end
因此,我怀疑您的测试上下文为spring.data.mongodb.port
配置了一个非零值。我知道您发布了application.yml,这意味着您正确地为spring.data.mongodb.port
分配了一个零值,但是如果您在EmbeddedMongoAutoConfiguration
构造函数中放置一个断点,并在properties参数中查看,我想您会看到该配置类使用的实际值不是零。如果传递给EmbeddedMongoAutoConfiguration
的端口值实际上为零,但仍然得到JVM_Bind错误,那么这意味着这个调用:network.getFreeServerPort(this.getHost())
没有返回空闲端口,这似乎不太可能。
为了解决这个问题:只要您用Spring.data.mongodb.port=0
配置测试上下文,那么嵌入的Mongo实例将被分配一个随机端口,并且这个随机端口将被Spring上下文的其他方面(例如MongoTemplate
)所知道,这些方面需要与Mongo实例对话。
问题内容: 我想在我的应用程序中使用低端口(Spring Web上的SNMP陷阱接收器+ Tomcat7)。正如我之前在此线程将低端口绑定到Ubuntu Server上的Java程序中所告诉的那样,我收到了错误权限被拒绝。然后,我将tomcat7用户组更改为root。但是之后,我得到了java.net.BindException:无法分配请求的地址错误。对于我尝试的每个端口(低端口或高端口),我总
我想在我的应用程序中使用低端口(SpringwebTomcat7上的SNMP陷阱接收器)。正如我之前在Ubuntu服务器上的这个线程Binding Low Port to Java Program中所说的,我得到了一个错误Permission denied。然后我将tomcat7用户组更改为root。但在那之后,我得到了java.net。BindException:无法分配请求的地址错误。对于我尝
我正在使用 GNetLib 在我的计算机上测试我的服务器。每当我使用我的网络的IP时,它都不会让我绑定。 我的主机是“76 . 5 . 43 . 21”//没有张贴我的实际IP,但你得到了要点。端口是43594,我已经用canyouseeme.org测试了连接,它显示成功。 以下是完整的错误: 问题是我使用家庭网络的IP,还是库限制了我可以使用的IP?
问题内容: 当我尝试设置套接字服务器时,出现错误消息: 整个代码是最简单的: 我100%确定端口已转发,Windows防火墙已关闭。什么都不会阻塞端口9999。还有什么会出错? 问题答案: 正如其他人指出的那样,这很可能与使用port的另一个进程有关。在Windows上,运行以下命令: 并且它应该列出任何阻塞端口的内容。当然,您必须去手动在Task Manager中杀死那些程序。如果仍然无法解决问
我想发送和接收数据报套接字,但遇到了异常。我传递了要通信的服务器的正确IP地址和正确的端口号。 请帮帮我。
问题内容: 我在172.16.1.218上运行以下node.js服务器: 我可以远程登录到它,它会按预期的方式回显。 我有以下运行在172.16.1.224上的node.js服务器: 但是,当我尝试运行它时,出现以下错误: 我已关闭所有防火墙等。对于此错误,我一无所知。希望有人能提供帮助。 提前谢谢了, 问题答案: 开启时,您无法监听,因为那不是您正在监听的计算机的IP。 如果要在该计算机上收听,