tomcat ajp 8009 协议(protocol)族不可用

标签 tomcat ajp

#问题
按照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/

相关文章:

tomcat - 从 Tomcat 连接到 JBoss 7.1.1 中的 EJB 时,JNDI 查找失败

java - 在 Spring 和 tomcat 中从 java 访问文件系统

java - Spring MVC - 在 Tomcat 上不断出现 404 错误

tomcat - 同一台服务器上的多个 tomcat ...ajp 停止工作

apache - Apache 2.4(但不是 2.2)上 Tomcat/AJP 的 POST 参数问题

在 Docker 容器中调试 Tomcat

rest - 带有 Netbeans 的 Tomcat restful Web 服务数据库 (JPA) 无法工作

Apache/Tomcat错误-传递错误的页面

web-services - 将 tomcat 上的 RESTful 端点限制为本地 webapp