пт, 25 окт. 2024 г. в 12:38, Lucian Jurj <lj...@neverfailgroup.com>:
> [skip]
>
> 24-Oct-2024 12:27:14.078 INFO [main] org.apache.coyote.AbstractProtocol.init 
> Initializing ProtocolHandler ["http-nio-9728"]
> 24-Oct-2024 12:27:14.109 INFO [main] org.apache.coyote.AbstractProtocol.init 
> Initializing ProtocolHandler ["https-openssl-nio-9727"]
> 24-Oct-2024 12:27:14.156 SEVERE [main] 
> org.apache.catalina.util.LifecycleBase.handleSubClassException Failed to 
> initialize component [Connector["https-openssl-nio-9727"]]
>         org.apache.catalina.LifecycleException: Protocol handler 
> initialization failed
>                 at 
> org.apache.catalina.connector.Connector.initInternal(Connector.java:1027)
>                 at 
> org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:122)
>                 at 
> org.apache.catalina.core.StandardService.initInternal(StandardService.java:525)
>                 at 
> org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:122)
>                 at 
> org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:986)
>                 at 
> org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:122)
>                 at 
> org.apache.catalina.startup.Catalina.load(Catalina.java:686)
>                 at 
> org.apache.catalina.startup.Catalina.load(Catalina.java:709)
>                 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:302)
>                 at 
> org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:472)
>         Caused by: java.lang.IllegalArgumentException: C:\Program 
> Files\Neverfail\tomcat\ssl\NFKeyStore.jks (The system cannot find the path 
> specified)
>                 at 
> org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:115)
>                 at 
> org.apache.tomcat.util.net.AbstractJsseEndpoint.initialiseSsl(AbstractJsseEndpoint.java:71)
>                 at 
> org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:228)
>                 at 
> org.apache.tomcat.util.net.AbstractEndpoint.bindWithCleanup(AbstractEndpoint.java:1373)
>                 at 
> org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:1386)
>                 at 
> org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:663)
>                 at 
> org.apache.coyote.http11.AbstractHttp11Protocol.init(AbstractHttp11Protocol.java:77)
>                 at 
> org.apache.catalina.connector.Connector.initInternal(Connector.java:1025)
>                 ... 13 more
>         Caused by: java.io.FileNotFoundException: C:\Program 
> Files\Neverfail\tomcat\ssl\NFKeyStore.jks (The system cannot find the path 
> specified)
>                 at java.io.FileInputStream.open0(Native Method)
>                 at java.io.FileInputStream.open(FileInputStream.java:195)
>                 at java.io.FileInputStream.<init>(FileInputStream.java:138)
>                 at java.io.FileInputStream.<init>(FileInputStream.java:93)
>                 at 
> sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90)
>                 at 
> sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:188)
>                 at 
> org.apache.catalina.startup.CatalinaBaseConfigurationSource.getResource(CatalinaBaseConfigurationSource.java:121)
>                 at 
> org.apache.tomcat.util.net.SSLUtilBase.getStore(SSLUtilBase.java:210)
>                 at 
> org.apache.tomcat.util.net.SSLHostConfigCertificate.getCertificateKeystore(SSLHostConfigCertificate.java:254)
>                 at 
> org.apache.tomcat.util.net.SSLUtilBase.getKeyManagers(SSLUtilBase.java:308)
>                 at 
> org.apache.tomcat.util.net.openssl.OpenSSLUtil.getKeyManagers(OpenSSLUtil.java:108)
>                 at 
> org.apache.tomcat.util.net.SSLUtilBase.createSSLContext(SSLUtilBase.java:268)
>                 at 
> org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:113)
>                 ... 20 more
> 24-Oct-2024 12:27:14.172 INFO [main] 
> org.apache.catalina.startup.Catalina.load Server initialization in [1772] 
> milliseconds
> 24-Oct-2024 12:27:14.203 INFO [main] 
> org.apache.catalina.core.StandardService.startInternal Starting service 
> [Catalina]
> 24-Oct-2024 12:27:14.203 INFO [main] 
> org.apache.catalina.core.StandardEngine.startInternal Starting Servlet 
> engine: [Apache Tomcat/9.0.96]
> 24-Oct-2024 12:27:14.234 INFO [main] 
> org.apache.catalina.startup.HostConfig.deployWAR Deploying web application 
> archive [C:\Program 
> Files\Neverfail\tomcat\apache-tomcat-9.0.96\webapps\hbws.war]
> 24-Oct-2024 12:27:45.864 INFO [main] org.apache.coyote.AbstractProtocol.stop 
> Stopping ProtocolHandler ["https-openssl-nio-9727"]
> 24-Oct-2024 12:27:50.868 INFO [main] org.apache.coyote.AbstractProtocol.start 
> Starting ProtocolHandler ["https-openssl-nio-9727"]
> 24-Oct-2024 12:27:50.883 INFO [main] 
> org.apache.tomcat.util.net.AbstractEndpoint.logCertificate Connector 
> [https-openssl-nio-9727], TLS virtual host [_default_], certificate type 
> [UNDEFINED] configured from keystore [../ssl/NFKeyStore.jks] using alias 
> [nfhb_private_certificate] with trust store [null]
>

Looking at "https-openssl-nio-9727" connector (ignoring "http-nio-9728") I see

> 24-Oct-2024 12:27:14.109 INFO [main] org.apache.coyote.AbstractProtocol.init 
> Initializing ProtocolHandler ["https-openssl-nio-9727"]
> 24-Oct-2024 12:27:14.156 SEVERE [main] 
> org.apache.catalina.util.LifecycleBase.handleSubClassException Failed to 
> initialize component [Connector["https-openssl-nio-9727"]]
>         org.apache.catalina.LifecycleException: Protocol handler 
> initialization failed
...
> 24-Oct-2024 12:27:45.864 INFO [main] org.apache.coyote.AbstractProtocol.stop 
> Stopping ProtocolHandler ["https-openssl-nio-9727"]
> 24-Oct-2024 12:27:50.868 INFO [main] org.apache.coyote.AbstractProtocol.start 
> Starting ProtocolHandler ["https-openssl-nio-9727"]

Thus failed init(), followed by stop() and start(). There is no
attempt to re-run init().

Looking at org.apache.catalina.util.LifecycleBase, I think that init()
results in LifecycleState.FAILED state, and that there is a bug in the
start() method.

In case of FAILED state the LifecycleState.start() method calls stop()
and goes further to starting. The current issue demonstrates that this
behaviour is wrong.

Maybe make separate error states, INIT_FAILED (aka not initialized),
START_FAILED (not started). Starting a non-initialized component is a
bad idea.

Automatically re-initializing a connector may not work as intended, as
there exist configurations where init() is called with different
privileges than start(). (See "Downgrading user" in
https://commons.apache.org/proper/commons-daemon/jsvc.html


BTW, please note the
org.apache.catalina.startup.EXIT_ON_INIT_FAILURE
system property. Documented here:
https://tomcat.apache.org/tomcat-11.0-doc/config/systemprops.html
https://tomcat.apache.org/tomcat-9.0-doc/config/systemprops.html

Best regards,
Konstantin Kolinko

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to