当前位置: 首页 > 知识库问答 >
问题:

Spring Boot不绑定到Tomcat端口

朱炜
2023-03-14

我正在尝试将一个warSpring Boot项目部署到一个Tomcat服务器中,该服务器将其他项目绑定到一些端口。当我部署新的war项目时,服务似乎没有绑定到从Spring Boot应用程序属性分配的端口8082

首先,我在服务器上添加了新端口8082。xml

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="-1"
           redirectPort="8443" /> //That was already specified

<Connector port="8082" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" /> //My addition

然后使用netstat-plnt我看到端口可用

tcp6       0      0 :::8082                 :::*                    LISTEN      -

通过访问/opt/apache-tomcat-7.0.88/webapps,我的新war应用程序似乎已经部署完毕。

应用程序日志没有显示任何错误或异常,Spring Boot应用程序似乎正在运行。以下是Spring的完整日志:https://pastebin.com/nX04gjE3

当我试图用

wgethttp://localhost:8082/services/test

我得到以下信息

--2019-06-10 09:49:56--  http://localhost:8082/services/test
Resolving localhost (localhost)... ::1, 127.0.0.1
Connecting to localhost (localhost)|::1|:8082... connected.
HTTP request sent, awaiting response... 404 Not Found
2019-06-10 09:49:56 ERROR 404: Not Found.

当然,每次更改后,我都会重启apache。这是一个部署的服务器,不在本地机器上,我所做的每一次更改都是用puty和winscp。

服务pplication.java

@SpringBootApplication
public class ServicesApplication extends SpringBootServletInitializer {


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

    public static void main(String[] args) {
        SpringApplication.run(ServicesApplication.class, args);
    }

}

应用程序属性

server.port=8082
http.port=8082


logging.file = /opt/logs/services.log


spring.datasource.url=jdbc:mysql://X.X.X.X/name?useSSL=false
spring.datasource.username=username
spring.datasource.password=password
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

编辑:我不需要应用程序在8082上运行,我可以接受其他8080的同一端口的答案。


共有1个答案

云鸿达
2023-03-14

您需要在服务器中指定一个新部分。xml如果您想在特定端口下运行该应用程序,则仅适用于该应用程序,而另一个端口也可用:

 <Server>
  <Service name="commonservice">
    <Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="-1"
           redirectPort="8443" />
    <Engine><Host name="commonhost">
          <Context path="/commonwebab"/>     
    </Host></Engine>
  </Service>
  <Service name="springservice">
    <Connector port="8082" protocol="HTTP/1.1"
           connectionTimeout="20000"
       redirectPort="8444" />
    <Engine><Host name="springhost">
      <Context path="/springapp"/>
    </Host></Engine>
  </Service>
</Server>

Spring引导明智,确保您的正常Main类扩展:

@SpringBootApplication
public class App extends SpringBootServletInitializer
 类似资料:
  • 我正在寻找一个解决方案,让我做一个角组件监听一个后端对象,得到一些其他服务的更新。 实际上,我有一个名为的组件,它显示客户签名的实际状态。对象中的此仅在后端通过REST公开到第三方服务的endpoint进行更新,该endpoint允许用户执行数字签名。 我的问题是,一旦第三方服务执行回调以更改状态,如何用实际状态实时更新UI。 为了便于您了解,我使用作为后端,使用作为前端。

  • 我的Spring Boot应用程序有一个文件application.yml,它不愿意运行。 根据日志,元素[simulator.geo.b12,simulator.geo.b13,simulator.geo.b21,simulator.geo.c6,simulator.geo.host]未绑定的原因。然而,这个属性是在application.yml设置的,编译器甚至会返回它的值。 如果有人能帮我解

  • 为什么groupId突出显示为红色

  • 搜索了一些类似案例未解决,问题出在哪里? 1.> 错误提示: Failed to bind properties under 'mapper' to tk.mybatis.mapper.entity.Config: Action: Update your application's configuration pom.xml ,重点关注 “tk.mybatis” application.prope

  • 我有一个简单的测试,我试图将一个弱ptr参数绑定到一个接受弱ptr的全局函数,并在支持指针仍然有效的情况下调用一个方法。 当我用弱指针创建lambda时,这似乎是有效的。如果我用weak_ptr直接调用全局方法,它也可以工作。但是,如果我事先将全局函数绑定到weak_ptr,它似乎不起作用。下面的淡化代码说明了这个问题。 我一定错过了一些简单的东西。有什么线索吗? 结果输出: 期望第一个weakP