在docker安装tomcat的时候,报错:Caused by: java.lang.IllegalArgumentException: The AJP Connector is configured with secretRequired="true
初识 docker,试着在 docker 中安装 tomcat(安装的 tomcat8.5),并且挂载到宿主机的相关目录下,结果启动的时候报错:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 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 需要给设置值:
1 | <Connector port= "8009" protocol= "AJP/1.3" redirectPort= "8443" /> |
设置成 "" 就可以了,也就是下面的设置结果:
1 | <Connector port= "8009" protocol= "AJP/1.3" redirectPort= "8443" secretRequired= "" /> |
然后重新启动 docer 中的 tomcat,发现启动成功了,大功告成!