【发布时间】:2017-08-18 23:27:14
【问题描述】:
我正在使用 Spring Framework 开发一个 REST API。
首先,由于同样的问题,我无法运行我的应用程序。我电脑上的 8080 端口正忙。
然后我发现解决这个问题的一种方法是在src/main/resources 文件夹下创建一个application.properties 文件。
这就是我所做的,并将服务器设置为侦听端口 8090。这有效,但只是第一次,现在每当我第二次尝试运行应用程序时都会遇到相同的异常。
Description:
The Tomcat connector configured to listen on port 8090 failed to start. The port may already be in use or the connector may be misconfigured.
Action:
Verify the connector's configuration, identify and stop any process that's listening on port 8090, or configure this application to listen on another port.
据我所知,这个框架利用 apache tomcat 的嵌入式实例来部署每个应用程序。
我的猜测是,我第二次尝试运行应用程序时服务器没有重新启动,这就是输出显示“端口可能已在使用中或连接器可能配置错误”的原因
所以,一个更具体的问题是,如何手动或以编程方式管理 apache tomcat 的嵌入式实例?
我还两次修改了application.properties 文件中的端口。它工作正常,但同样,只是第一次。正如你可以想象的那样,每次执行应用程序时我都不能做同样的事情。
【问题讨论】:
-
您是否在尝试第二次启动应用程序之前停止它?如果是这样,你是怎么做到的?听起来应用程序的第一个实例仍在运行。
-
不,我不是。我实际上认为框架会在幕后执行这些操作。
-
对于临时解决方法,您可以将端口设置为
server.port=0,这将找到一个随机开放的端口来使用。虽然我建议您找到一种方法来正确停止您的应用程序。 -
应用您给我的解决方案运行良好。感谢您抽出时间提出这个问题。
-
嗨@codingbash,Lyk yu提到,我在属性文件中将端口号设为0。不过,我遇到了同样的错误。 “配置为侦听端口 0 的 Tomcat 连接器启动失败。该端口可能已在使用中,或者连接器可能配置错误。”对我的问题有任何猜测吗??
标签: java spring eclipse tomcat spring-boot