简体   繁体   English

Tomcat 9.0.34 的 Gradle 插件

[英]Gradle plugin for Tomcat 9.0.34

I'm trying to start my app using https://github.com/bmuschko/gradle-tomcat-plugin .我正在尝试使用https://github.com/bmuschko/gradle-tomcat-plugin启动我的应用程序。

My gradle config looks like that:我的 gradle 配置如下所示:

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
}

With Tomcat version up to 9.0.30 it runs smoothly, but with the latest 9.0.31+ the following exception is thrown (cut for brevity):使用 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)

How to get rid of it?如何摆脱它? Can this be fixed by configuration change?这可以通过配置更改来解决吗? Is there any tomcat plugin fork which handles it nicely or maybe another gradle plugin for tomcat?是否有任何 tomcat 插件叉可以很好地处理它,或者可能是 tomcat 的另一个 gradle 插件?

Try replacing尝试更换

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

with

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

This will allow bmuschko to bypass the AJP connector protocol.这将允许 bmuschko 绕过 AJP 连接器协议。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM