2016-05-11 10 views
1

Ich habe ein Grails-Anwendung und wenn ich in Tomcat durch Option bereitstellen (v 2.5.3.): IST-Datei, die Auswahl der Krieg Datei die folgenden Fehler angezeigt zu implementieren. Wenn ich eine App einfacher (Größe, Komplexität, etc.) versuche, funktioniert es gut.Fehler bei Tomcat einsetzen Grails-Anwendung

Wenn ich manuell den Inhalt der WAR-Datei in den Tomcat-Pfad kopieren: PfadTomcat/webapps/myApplication wenn ich die Anwendung von Manager ausführen, funktioniert es gut. Jeder Fehler erscheint.

Fehler:

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 

Grails Abhängigkeitsbericht:

+--- 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-Ordner:

enter image description here

mit folgenden Konfiguration in BuildConfig.groovy Gelöst:

compile ("org.grails.plugins:jasypt-encryption:1.3.1") { 
      excludes "bcprov-jdk16" 
     } 

Dank.

Antwort

1

Wahrscheinlich haben Sie 2 Versionen der org.bouncycastle Bibliothek

Sie grails dependency-report ausführen können auf Ihren Abhängigkeiten zu überprüfen und sicherzustellen, dass die lib nur auf Server von 1 Glas

scheint, dass Sie einen schlechten Kerl haben org.bouncycastle:bcprov-jdk16:1.46 so Sie entfernen müssen und prüfen, welche Plugins diese Abhängigkeit ziehen und sicherstellen, dass es aus der Abhängigkeit auszuschließen so in Ihrem BuildConfig.groovy Sie

von doc

haben

By default, Grails will not only get the JARs and plugins that you declare, but it will also get their transitive dependencies. This is usually what you want, but there are occasions where you want a dependency without all its baggage. In such cases, you can disable transitive dependency resolution on a case-by-case basis:

A far more common scenario is where you want the transitive dependencies, but some of them cause issues with your own dependencies or are unnecessary. For example, many Apache projects have 'commons-logging' as a transitive dependency, but it shouldn't be included in a Grails project (we use SLF4J). That's where the excludes option comes in:

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' ]) 

Sie wollen bcprov-jdk16 aus Ihrer Abhängigkeit

+0

Ich habe den Bericht auszuschließen. Danke für die Hilfe. ** Edit **: Antwort ist zu groß und ich kann es nicht hinzufügen. –

+0

Überprüfen Sie für bestimmte Einträge über 'org.bouncycastle' –

+0

Ja, es scheint. Ich habe es hinzugefügt. Außerdem habe ich folgendes gefunden: [Link1.] (Http://stackoverflow.com/questions/23927880/avoid-cyclic-reference-inheritance-in-grails) [Link2.] (Http://stackoverflow.com/questions/ 29955410/how-do-i-fix-stackoverflowerror-in-org-apache-catalina-startup-contextconfig-pop) –