初識docker,試着在docker中安裝tomcat(安裝的tomcat8.5),並且掛載到宿主機的相關目錄下,結果啟動的時候報錯:
12-May-2020 01:14:34.061 SEVERE [main] org.apache.catalina.core.StandardService.startInternal Failed to start connector [Connector[AJP/1.3-8009]]
org.apache.catalina.LifecycleException: Protocol handler start failed
at org.apache.catalina.connector.Connector.startInternal(Connector.java:1085)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:440)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:766)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.startup.Catalina.start(Catalina.java:688)
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.start(Bootstrap.java:343)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:474)
Caused by: java.lang.IllegalArgumentException: The AJP Connector is configured with secretRequired="true" but the secret attribute is either null or "". This combination is not valid.
at org.apache.coyote.ajp.AbstractAjpProtocol.start(AbstractAjpProtocol.java:274)
at org.apache.catalina.connector.Connector.startInternal(Connector.java:1083)
... 12 more
22-May-2020 01:14:34.062 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 124 ms
查閱資料,發現了8.5版本的tomcat的sever.xml中有個屬性 secretRequired需要給設置值:
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
設置成""就可以了,也就是下面的設置結果:
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" secretRequired="" />
然后重新啟動docer中的tomcat,發現啟動成功了,大功告成!