Gradle plugin for Tomcat 9.0.34



我正尝试使用https://github.com/bmuschko/gradle-tomcat-plugin.

我的渐变配置如下:

apply plugin: 'com.bmuschko.tomcat'
ext.tomcatVersion = '9.0.30'
dependencies {
// some dependencies
tomcat "org.apache.tomcat.embed:tomcat-embed-core:$tomcatVersion",
"org.apache.tomcat.embed:tomcat-embed-logging-juli:9.0.0.M6",
"org.apache.tomcat.embed:tomcat-embed-jasper:$tomcatVersion",
"org.apache.tomcat:tomcat-jdbc:$tomcatVersion",
"org.apache.tomcat:tomcat-dbcp:$tomcatVersion"
}
tomcat {
httpProtocol = 'org.apache.coyote.http11.Http11Nio2Protocol'
ajpProtocol  = 'org.apache.coyote.ajp.AjpNio2Protocol'
httpPort = 8088
}

Tomcat版本最高可达9.0.30,运行平稳,但对于最新的9.0.31+,会抛出以下异常(为简洁起见,请剪切(:

org.apache.catalina.LifecycleException: Protocol handler start failed
at org.apache.catalina.connector.Connector.startInternal(Connector.java:1066)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:438)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.startup.Tomcat.start(Tomcat.java:468)
at org.apache.catalina.startup.Tomcat$start$1.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:115)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:119)
at com.bmuschko.gradle.tomcat.embedded.BaseTomcatServerImpl.start(BaseTomcatServerImpl.groovy:53)
at com.bmuschko.gradle.tomcat.embedded.TomcatServer$start$7.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:115)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:119)
at com.bmuschko.gradle.tomcat.tasks.AbstractTomcatRun.startTomcat(AbstractTomcatRun.groovy:365)
...
at com.bmuschko.gradle.tomcat.tasks.AbstractTomcatRun.validateConfigurationAndStartTomcat(AbstractTomcatRun.groovy:233)
...
at com.bmuschko.gradle.tomcat.tasks.AbstractTomcatRun$_start_closure2.doCall(AbstractTomcatRun.groovy:226)
at com.bmuschko.gradle.tomcat.tasks.AbstractTomcatRun$_start_closure2.doCall(AbstractTomcatRun.groovy)
...
at com.bmuschko.gradle.tomcat.internal.utils.TomcatThreadContextClassLoader.withClasspath(TomcatThreadContextClassLoader.groovy:30)
at com.bmuschko.gradle.tomcat.internal.utils.ThreadContextClassLoader$withClasspath.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:115)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:135)
at com.bmuschko.gradle.tomcat.tasks.AbstractTomcatRun.start(AbstractTomcatRun.groovy:225)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
...
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:264)
at org.apache.catalina.connector.Connector.startInternal(Connector.java:1063)

如何摆脱它?这可以通过更改配置来解决吗?有没有任何tomcat插件叉可以很好地处理它,或者可能是tomcat的另一个gradle插件?

尝试更换

ajpProtocol  = 'org.apache.coyote.ajp.AjpNio2Protocol'

带有

ajpProtocol = 'org.apache.coyote.http11.Http11Nio2Protocol'

这将允许bmuschko绕过AJP连接器协议。

最新更新