将 AWS Elastic Beanstalk 环境与 Tomcat 7 和 Java 7 一起使用,在 64 位 Amazon Linux/3.4.8 上运行,这是一个已退役的平台,但我已经使用了很多年,没有出现任何问题。
克隆了环境,没有对环境或配置进行任何更改,现在不再工作并且
catalina.out
日志文件显示
Nov 28, 2023 11:01:36 AM org.apache.catalina.core.StandardService startInternal
SEVERE: Failed to start connector [Connector[AJP/1.3-8009]]
org.apache.catalina.LifecycleException: service.getName(): "Catalina"; Protocol handler start failed
at org.apache.catalina.connector.Connector.startInternal(Connector.java:1065)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:460)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:744)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.startup.Catalina.start(Catalina.java:712)
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:607)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:284)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:415)
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:211)
at org.apache.catalina.connector.Connector.startInternal(Connector.java:1058)
... 12 more
Nov 28, 2023 11:01:36 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 2437 ms
我猜这是某种安全修复:
错误消息表明
secretRequired
设置为 true
,但未提供任何秘密。这是防止未经授权访问 AJP 连接器的安全措施。
检查这是否类似于“AJP 连接器配置为
secretRequired="true"
,但升级到 2.2.5 后,秘密属性为 null 或“””。
升级后的 Tomcat 的相同配置可能会触发该错误。
在这种情况下,将
secretRequired="false"
添加到 Tomcat conf/server.xml
应该会有所帮助。server.xml
文件通常可能位于 Elastic Beanstalk 环境配置中的
/etc/tomcat7/server.xml
。
如果您不使用 AJP 连接器,可以通过在
server.xml
中注释掉它来禁用它。
<!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> -->