gpt4 book ai didi

java - 如何更改spring mockmvc的http端口

转载 作者:搜寻专家 更新时间:2023-11-01 03:46:18 26 4
gpt4 key购买 nike

我正在使用 vertx 开发一个具有三个端点的简单 API。

该 api 有一些我无法修改且需要通过的预定义测试,它们使用:

@Autowired
private GenericWebApplicationContext webApplicationContext;
private MockMvc mockMvc;

在完成 api 后,我发现因为我正在使用 verticle,所以我不需要提供 spring boot starter 依赖的嵌入式 tomcat,所以我删除了它。

我的问题是什么?

我不能排除嵌入式 tomcat,因为 spring boot 需要它,否则我会得到以下错误:配置为监听端口 8080 的 Tomcat 连接器无法启动。该端口可能已被使用或连接器可能配置错误。因为 vertx verticle 和 tomcat 监听相同的端口 (8080)。

这里的问题是,例如,我可以将 Verticle 端口更改为 8081,但是需要对端口 8080 执行测试。我该如何解决这个问题,以便测试监听我部署的 Verticle(这会创建一个http 服务器也是)?

基本上我想知道 MockHttpServletResponse 是否可能使用由 Verticle 创建的 vertx 服务器而不是嵌入式 tomcat。

最佳答案

问题可能出在您的 pom.xml 和您的 @Configuration 类中。尝试将此依赖项添加到您的 pom.xml 。因此,当您将 war 文件部署到您的服务器时,它将运行普通的 tomcat 而不是嵌入

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>

在你的应用程序类中写这个

@SpringBootApplication
public class Application extends SpringBootServletInitializer {

public static void main(String[] args) {

SpringApplication.run(Application.class, args);
}

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}

.那么你面临的问题是 tomcat 已经启动,所以它监听端口 8080,你尝试运行另一个 tomcat 来监听同样的问题。

如果你想启动新的,你必须关闭旧的tomcat实例

关于java - 如何更改spring mockmvc的http端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52344177/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com