1. 问题复现
环境:Windows11系统,IDEA2023.1.1, apache-tomcat-9.0.0.M9
在idea中创建web项目,使用外部tomcat启动项目, 启动日志如下:
21-May-2023 18:40:36.543 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded APR based Apache Tomcat Native library 1.2.8 using APR version 1.5.2.
21-May-2023 18:40:36.543 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
21-May-2023 18:40:36.543 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
Disconnected from the target VM, address: '127.0.0.1:8103', transport: 'socket'
Disconnected from server
一直卡在useAprConnector [false], useOpenSSL [true]
没有日志打印,直到idea提示tomcat启动失败,失败原因:
Application Server was not connected before run configuration stop, reason: javax.management.InstanceNotFoundException: Catalina:type=Server
2. 问题排查
(1)查阅网上的资料, 给出的有如下方案的:
修改配置端口,检查JRE环境变量;
修改tomcat#conf目录下的server.xml配置;
经过我的尝试后都失败了。
(2)自我排查
我直接在tomcat/bin目录下启动startup.bat, 发现也是一样卡在useAprConnector [false], useOpenSSL [true]
无法继续启动。我在想是不是端口被占用了,或者防火墙没放开端口的访问权限,使用下面的命令查看没有进程占用端口;防火墙也是关闭状态。
# 查找8080端口的进程
netstat -ano | findstr 8080
继续使用useAprConnector [false], useOpenSSL [true]
查阅资料, 发现可能是windows11系统与当前tomcat的驱动文件不兼容导致,
下载兼容的tcnative-1.dll
替换到TOMCAT_HOME/bin目录下, 重新启动正常。
下载地址: http://archive.apache.org/dist/tomcat/tomcat-connectors/native/1.1.20/binaries/win64/x64/