我目前正试图通过一些小的配置更改启动并运行Spring Boot应用程序,但我似乎无法让端口正确收听。似乎tomcat实例加载的server.xml会覆盖我的application.properties文件指定的任何内容。
application.properties:
logging.level.app = TRACE
logging.file = /tmp/my-server.log
server.port = 8081
当我将其部署到我的/ usr / local / tomcat / webapps时,我可以访问服务器,但只能访问端口8080.它似乎忽略了server.port属性。我相信服务器正在正确地获取属性文件,因为正确记录到/tmp/my-server.log
最终目标是让服务器在Amazon Elastic Beanstalk中运行时监听我选择的端口。我可以更新负载均衡器上的端口,但如果服务器只监听它预配置的端口,那就无所谓了。
提前感谢您的帮助!
OSX Yosemite,Tomcat 8.0.24,Spring Boot v1.2.4
答案 0 :(得分:7)
server.port
等Spring Boot属性只有在使用嵌入式Tomcat时才会生效。也就是说,如果您通过在其中使用main
执行SpringApplication.run()
方法或通过创建可执行JAR并使用java -jar
启动它来启动应用程序。
将应用程序作为WAR存档部署到独立的Tomcat时,必须通过编辑server.xml
以及可能的其他配置文件以传统方式配置Tomcat。
答案 1 :(得分:0)
server.port 属性仅用于嵌入式应用程序服务器。 如果要使用独立的配置,则需要在应用程序服务器本身上完成配置。在tomcat的情况下,if在server.xml文件中指定。
如果要在AWS Elastic Beanstalk上运行应用程序,则在创建环境时,可以指定要使用webserver + tomcat。
这样您就不必担心端口了。亚马逊将为您处理它。
答案 2 :(得分:0)
可以edit the port in the configuration file:
{Tomcat installation folder}\conf\server.xml
<!-- Define a non-SSL HTTP/1.1 Connector on port 8180 -->
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
要么
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8181" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />