Tomcat部署Grails应用程序时出错

Tomcat部署Grails应用程序时出错,tomcat,grails,grails-2.0,tomcat8,grails-controller,Tomcat,Grails,Grails 2.0,Tomcat8,Grails Controller,我有一个Grails(v.2.5.3)应用程序,当我通过以下选项在Tomcat中部署时:WAR file to deploy,选择WAR file,会出现以下错误。如果我尝试一个更简单的应用程序(大小、复杂度等),它会工作得很好 但是,如果我从manager运行应用程序时手动将war文件的内容复制到Tomcat路径:路径Tomcat/webapps/myApplication,则效果良好。出现任何错误 错误: 11-May-2016 19:54:33.973 INFO [http-nio-808

我有一个Grails(v.2.5.3)应用程序,当我通过以下选项在Tomcat中部署时:WAR file to deploy,选择WAR file,会出现以下错误。如果我尝试一个更简单的应用程序(大小、复杂度等),它会工作得很好

但是,如果我从manager运行应用程序时手动将war文件的内容复制到Tomcat路径:路径Tomcat/webapps/myApplication,则效果良好。出现任何错误

错误:

11-May-2016 19:54:33.973 INFO [http-nio-8080-exec-15] org.apache.catalina.startup.HostConfig.deployWAR Despliegue del archivo /usr/local/apache-tomcat-8.0.30/webapps/MYAPP.war de la aplicación web
11-May-2016 19:54:40.215 SEVERE [http-nio-8080-exec-15] org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: start: 
 org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/MYAPP]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:945)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:466)
    at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1583)
    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.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
    at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
    at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1460)
    at org.apache.catalina.manager.HTMLManagerServlet.upload(HTMLManagerServlet.java:288)
    at org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:209)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:136)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:614)
    at org.apache.catalina.valves.RequestFilterValve.process(RequestFilterValve.java:312)
    at org.apache.catalina.valves.RemoteAddrValve.invoke(RemoteAddrValve.java:95)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:521)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1096)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:674)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalStateException: Unable to complete the scan for annotations for web application [/MYAPP] due to a StackOverflowError. Possible root causes include a too low setting for -Xss and illegal cyclic inheritance dependencies. The class hierarchy being processed was [org.bouncycastle.asn1.ASN1Boolean->org.bouncycastle.asn1.DERBoolean->org.bouncycastle.asn1.ASN1Boolean]
    at org.apache.catalina.startup.ContextConfig.checkHandlesTypes(ContextConfig.java:2066)
    at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2012)
    at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1961)
    at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1936)
    at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1897)
    at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1149)
    at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:771)
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:305)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:95)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5154)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 47 more
compile ("org.grails.plugins:jasypt-encryption:1.3.1") {
            excludes "bcprov-jdk16"
        }
Grails依赖关系报告:

+--- org.grails:grails-docs:2.5.3
    ...
    \--- com.lowagie:itext:2.0.8
       \--- bouncycastle:bcmail-jdk14:138
       \--- bouncycastle:bcprov-jdk14:138
....

+--- org.grails.plugins:tika-parser:1.9.0
   \--- org.bouncycastle:bcmail-jdk15on:1.52
   \--- org.bouncycastle:bcpkix-jdk15on:1.52
   \--- org.bouncycastle:bcprov-jdk15on:1.52
....

+--- org.grails.plugins:jasypt-encryption:1.3.1
   \--- org.bouncycastle:bcprov-jdk16:1.46
Lib文件夹:

+--- org.grails:grails-docs:2.5.3
    ...
    \--- com.lowagie:itext:2.0.8
       \--- bouncycastle:bcmail-jdk14:138
       \--- bouncycastle:bcprov-jdk14:138
....

+--- org.grails.plugins:tika-parser:1.9.0
   \--- org.bouncycastle:bcmail-jdk15on:1.52
   \--- org.bouncycastle:bcpkix-jdk15on:1.52
   \--- org.bouncycastle:bcprov-jdk15on:1.52
....

+--- org.grails.plugins:jasypt-encryption:1.3.1
   \--- org.bouncycastle:bcprov-jdk16:1.46

使用BuildConfig.groovy中的以下配置解决:

11-May-2016 19:54:33.973 INFO [http-nio-8080-exec-15] org.apache.catalina.startup.HostConfig.deployWAR Despliegue del archivo /usr/local/apache-tomcat-8.0.30/webapps/MYAPP.war de la aplicación web
11-May-2016 19:54:40.215 SEVERE [http-nio-8080-exec-15] org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: start: 
 org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/MYAPP]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:945)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:466)
    at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1583)
    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.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
    at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
    at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1460)
    at org.apache.catalina.manager.HTMLManagerServlet.upload(HTMLManagerServlet.java:288)
    at org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:209)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:136)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:614)
    at org.apache.catalina.valves.RequestFilterValve.process(RequestFilterValve.java:312)
    at org.apache.catalina.valves.RemoteAddrValve.invoke(RemoteAddrValve.java:95)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:521)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1096)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:674)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalStateException: Unable to complete the scan for annotations for web application [/MYAPP] due to a StackOverflowError. Possible root causes include a too low setting for -Xss and illegal cyclic inheritance dependencies. The class hierarchy being processed was [org.bouncycastle.asn1.ASN1Boolean->org.bouncycastle.asn1.DERBoolean->org.bouncycastle.asn1.ASN1Boolean]
    at org.apache.catalina.startup.ContextConfig.checkHandlesTypes(ContextConfig.java:2066)
    at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2012)
    at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1961)
    at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1936)
    at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1897)
    at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1149)
    at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:771)
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:305)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:95)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5154)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 47 more
compile ("org.grails.plugins:jasypt-encryption:1.3.1") {
            excludes "bcprov-jdk16"
        }

谢谢。

您可能有两个版本的
org.bouncycastle

您可以运行
grails dependency report
来检查您的依赖关系,并确保只从1个jar服务器提供lib

似乎你有一个坏家伙
org.bouncycastle:bcprov-jdk16:1.46
,所以你需要删除并检查哪些插件拉这个依赖项,并确保将它从依赖项中排除,这样在
BuildConfig.groovy
中你就可以

默认情况下,Grails将不仅获得您需要的JAR和插件 声明,但它也将获得它们的可传递依赖项。这是 通常是你想要的,但有时你想要一个 没有包袱的依赖。在这种情况下,您可以禁用 基于具体情况的可传递依赖项解析:

一个更常见的场景是您希望传递 依赖项,但其中一些会导致您自己的依赖项出现问题 或者是不必要的。例如,许多Apache项目都有 “commons logging”是一个可传递的依赖项,但不应该是 包含在Grails项目中(我们使用SLF4J)。这就是问题所在 选项包括:

runtime('com.mysql:mysql-connector-java:5.1.16',
        'net.sf.ehcache:ehcache:1.6.1') {
    excludes "xml-apis", "commons-logging"
}
// Or
runtime(group:'com.mysql', name:'mysql-connector-java', version:'5.1.16') {
    excludes([ group: 'xml-apis', name: 'xml-apis'],
             [ group: 'org.apache.httpcomponents' ],
             [ name: 'commons-logging' ])

您需要从依赖项中排除
bcprov-jdk16

我添加了报告。谢谢你帮助我。编辑:响应太大,我无法添加。请检查有关
org.bouncycastle
Yes的特定条目。我加上去了。除此之外,我发现:是的,这是不时出现的事情,我认为我们面对它——不得不从“罐子地狱”中取出一个罐子,这很好——好运有时并不明显;但是有了这个报告,您应该能够看到是否/何时使用了另一个版本,我是否手动删除了这个jar?是否存在生成war文件时将其删除的自动过程,例如:键入Build.config或template/war/web.xml?