0

How to enable HTTP/2 in apache-tomcat-9.*. Tomcat's latest version provide full-fledged support for HTTP/2. I put the below configuration in server.xml file. But, the server throws an error.

<Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol" maxThreads="150" SSLEnabled="true">
        <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol"/>
    <SSLHostConfig honorCipherOrder="false">
        <Certificate certificateKeyFile="/home/user/cert/server.key"  certificateFile="/home/user/cert/server.crt"/>
    </SSLHostConfig>
</Connector>

Error

org.apache.catalina.LifecycleException: The configured protocol [org.apache.coyote.http11.Http11AprProtocol] requires the APR/native library which is not available
    at org.apache.catalina.connector.Connector.initInternal(Connector.java:965)
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
    at org.apache.catalina.core.StandardService.initInternal(StandardService.java:533)
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
    at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:1059)
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:584)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:607)
    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:304)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:474)

Is anything I missed in this configuration? I tried with .jks certificate file too. But, the problem didn't solve.

sprabhakaran
  • 1,615
  • 5
  • 20
  • 36

0 Answers0