Tomcat自定义的端口查不到,也无法访问tomcat的服务
创始人
2025-05-31 23:05:57

昨天再维护一个老项目的时候遇到一个很奇葩的问题,服务正常启动,日志正常输出了,但是就是用端口访问不到服务,tomcat的server.xml配置如下:

  

理论上tomcat启动后就应该占用相应的8080端口的,但是再通过服务做请求的时候,怎么都访问不到,排查步骤如下:

  1. 确认服务是否正常启动

这个查看日志正常输出,里面的定时和mq的消费都是正常的,所以确认服务运行正常。

  1. 排查tomcat本身的问题

首先查看tomcat的进程:

ps -ef | grep tomcat

然后根据pid查询tomcat的端口占用情况

netstat -anop | grep 5087

奇怪的事情发生,居然没有发现tomcat占8080端口

  1. 排查相应的端口占用情况

ss -anput |grep 8080

没有查到任何信息,这个时候我们的运维同事很蒙圈,我也很蒙圈。

那没办法,尝试去解决,查看tomcat的本身日志文件,启动正常,没有产生任何错误。

这个时候我脑子里面产生了一种想法,那就是让他们端口冲突看会出现什么情况,说干就干,复制一份tomcat,修改shutdown的端口,修改jpa的端口,保留出口端口一致。启动两个tomcat。这个时候确实查到一些不一样的日志信息。

19-Mar-2023 14:21:07.795 SEVERE [main] org.apache.catalina.util.LifecycleBase.handleSubClassException Failed to initialize component [Connector[org.apache.coyote.http11.Http11AprProtocol-8080]]org.apache.catalina.LifecycleException: The configured protocol [org.apache.coyote.http11.Http11AprProtocol] requires the APR/native library which is not availableat org.apache.catalina.connector.Connector.initInternal(Connector.java:917)at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)at org.apache.catalina.core.StandardService.initInternal(StandardService.java:530)at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:852)at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)at org.apache.catalina.startup.Catalina.load(Catalina.java:633)at org.apache.catalina.startup.Catalina.load(Catalina.java:656)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:306)at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:491)

有了错误以为就好解决了,后来发现,网上的资料是真少,最终找到了一个雷同的情况相关参考。

修改 server.xml 中的

protocol="org.apache.coyote.http11.Http11AprProtocol"

为protocol="HTTP/1.1"

重启tomcat,问题解决。至于原因嘛,我也没整明白,等各位大哥去琢磨把。

相关内容

热门资讯

日本财务大臣就日元走弱发出警告... 来源:环球市场播报 在日本央行当天稍早宣布加息并召开新闻发布会后,日元兑美元明显走软,日本财务大臣...
特朗普五天圣诞长假期不会惠及大... 来源:环球市场播报 特朗普总统签署行政命令,允许联邦雇员今年12月24日和12月26日放假,这引发...
小米17 Ultra发布在即,... 12月18日,小米公司通过官方微博宣布与徕卡的全球影像战略合作正式升级,此次升级引入全新的“战略共创...
视频丨高市早苗持续遭批,日本民... 日本首相高市早苗的涉台错误言论引发日本国内持续批评。19日,部分日本民众在东京举行抗议集会,要求高市...
一场千万美元的赌注:造一个替你... 出品|虎嗅科技组作者|李一飞编辑|陈伊凡头图|视觉中国“AI原生100”是虎嗅科技组推出针对AI原生...