不确定这是 Spring Boot 的问题还是 Vaadin 的问题,但从 Spring Boot 2.4.5 升级到 2.4.6 会导致我们的集成测试失败(https://github.com/vaadin/spring/issues/810),因为 RMI 端口(9001)即使在spring-boot:stop
执行后仍在使用中。
服务器进程似乎仍在运行:
61070 s018 S 0:13.03 /Library/Java/JavaVirtualMachines/amazon-corretto-8.jdk/Contents/Home/jre/bin/java -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9001 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=127.0.0.1 -cp lots-of-classes-here com.vaadin.flow.spring.scan.test.TestServletInitializer --spring.application.admin.enabled=true --spring.application.admin.jmx-name=org.springframework.boot:type=Admin,name=SpringApplication
等待一段时间后它才会消失。
我无法立即从 Java 堆栈跟踪或其他任何因素看出服务器保持运行的原因。
它似乎可以通过我们的任何测试模块重现,只需要
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<id>pre-integration-test</id>
<goals>
<goal>start</goal>
</goals>
</execution>
<execution>
<id>post-integration-test</id>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>
并做例如mvn install
有任何想法吗?