#问题
按照tomcat官方的例子,我经常配置测试启动。遇到一个奇怪的问题,发现8009启动有问题,端口和防火墙都正常,不知道怎么处理。
server.xml https://tomcat.apache.org/tomcat-7.0-doc/cluster-howto.html(Configuration例子)
# tomcat log
<code>
INFO: Server version name: Apache Tomcat/7.0.103
INFO: Server version number: 7.0.103.0
INFO: OS Name: Linux
INFO: CATALINA_HOME: /home/tomcat/apache-tomcat-7.0.103
INFO: Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
INFO: Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
INFO: Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
INFO: Command line argument: -Dignore.endorsed.dirs=
INFO: Command line argument: -Dcatalina.base=/home/tomcat/apache-tomcat-7.0.103
INFO: Command line argument: -Dcatalina.home=/home/tomcat/apache-tomcat-7.0.103
INFO: Command line argument: -Djava.io.tmpdir=/home/tomcat/apache-tomcat-7.0.103/temp
Apr 13, 2020 5:47:16 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib]
Apr 13, 2020 5:47:16 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Apr 13, 2020 5:47:17 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-0:0:0:0:0:0:0:0-8009"]
Apr 13, 2020 5:47:17 PM org.apache.coyote.AbstractProtocol init
SEVERE: Failed to initialize end point associated with ProtocolHandler ["ajp-bio-0:0:0:0:0:0:0:0-8009"]
java.net.SocketException: Protocol family unavailable
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376)
at java.net.ServerSocket.bind(ServerSocket.java:376)
at java.net.ServerSocket.<init>(ServerSocket.java:237)
at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:55)
at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:404)
at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:750)
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:467)
at org.apache.catalina.connector.Connector.initInternal(Connector.java:981)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
at org.apache.catalina.core.StandardService.initInternal(StandardService.java:560)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:826)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
at org.apache.catalina.startup.Catalina.load(Catalina.java:663)
at org.apache.catalina.startup.Catalina.load(Catalina.java:686)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:244)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Apr 13, 2020 5:47:17 PM org.apache.catalina.core.StandardService initInternal
SEVERE: Failed to initialize connector [Connector[AJP/1.3-8009]]
org.apache.catalina.LifecycleException: Protocol handler initialization failed
at org.apache.catalina.connector.Connector.initInternal(Connector.java:983)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
at org.apache.catalina.core.StandardService.initInternal(StandardService.java:560)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:826)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
at org.apache.catalina.startup.Catalina.load(Catalina.java:663)
at org.apache.catalina.startup.Catalina.load(Catalina.java:686)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:244)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.net.SocketException: Protocol family unavailable
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376)
at java.net.ServerSocket.bind(ServerSocket.java:376)
at java.net.ServerSocket.<init>(ServerSocket.java:237)
at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:55)
at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:404)
at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:750)
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:467)
at org.apache.catalina.connector.Connector.initInternal(Connector.java:981)
... 13 more
Apr 13, 2020 5:47:17 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 515 ms
Apr 13, 2020 5:47:17 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service [Catalina]
Apr 13, 2020 5:47:17 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.103
Apr 13, 2020 5:47:17 PM org.apache.catalina.ha.tcp.SimpleTcpCluster startInternal
INFO: Cluster is about to start
</code>
最佳答案
已解决。服务器可能不支持 IP6。修改配置如下,问题解决。
连接器协议(protocol)="AJP/1.3"地址="::1 更改为 0.0.0.0"
关于tomcat ajp 8009 协议(protocol)族不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61186022/