【问题标题】:org.springframework.boot.context.embedded.PortInUseException: Port 80 is already in useorg.springframework.boot.context.embedded.PortInUseException:端口 80 已在使用中
【发布时间】:2016-08-07 06:57:51
【问题描述】:

当应用程序通过 STS 作为 spring boot 启动时会发生这种情况。

春季启动: 1.4.0.M1

我有一个在端口 80 上运行的 IIS,但是我已通过 STS 配置属性将 sever.port 更改为 8090STS Screen shot

为什么 STS 嵌入式 tomcat 更改后仍然使用端口 80?有点疑惑。

2016-04-15 05:22:03,985 [main] 错误 os.boot.SpringApplication - 应用程序启动失败 org.springframework.boot.context.embedded.PortInUseException: 端口 80 已在使用 org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.checkThatConnectorsHaveStarted(TomcatEmbeddedServletContainer.java:187) 在 org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.start(TomcatEmbeddedServletContainer.java:170) 在 org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.startEmbeddedServletContainer(EmbeddedWebApplicationContext.java:293) 在 org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:141) 在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:540) 在 org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118) 在 org.springframework.boot.SpringApplication.refresh(SpringApplication.java:768) 在 org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:362) 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:308) 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:1183) 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:1172) 在 com.jbhunt.web.FinanceClaimsApplication.main(FinanceClaimsApplication.java:71)

除了上述之外,我没有找到更改端口的选项 提及。任何帮助将不胜感激。

【问题讨论】:

  • .properties.yaml 文件中的设置是否有冲突?例如。 management.port 使用执行器?
  • 我在.properties.yaml 文件中没有定义属性。我尝试在 STS 属性对话框中将management.port 提及到 8091,但仍然没有运气。
  • 您是否在第二个选项卡中传递了任何参数?
  • Boot 的 HTTP 默认端口是 8080,所以你必须有一些东西将它设置为 80
  • 不,它没有设置为 80。我什至将它设置为 8090。在第二个选项卡中没有传递任何内容。

标签: java spring spring-boot


【解决方案1】:

您可以配置测试类以使用随机端口 (working-with-random-ports) 加载上下文。

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)

WebEnvironment 可以使用以下常量进行设置:RANDOM_PORT、DEFINED_PORT、MOCK 或 NONE。

webEnvironment 属性允许为测试配置特定的“网络环境”。您可以使用 MOCK servlet 环境或在 RANDOM_PORT 或 DEFINED_PORT 上运行的真实 HTTP 服务器开始测试。

【讨论】:

    猜你喜欢
    • 2015-10-22
    • 1970-01-01
    • 2013-08-05
    • 2021-11-15
    • 1970-01-01
    • 2018-09-25
    • 2012-11-30
    • 1970-01-01
    • 2017-10-12
    相关资源
    最近更新 更多