Gente,
Estou passando o carnaval trabalhando… e obcecado com um problema na minha aplicação. Já procurei sobre o assunto, no google e aqui no GUJ mesmo, como não obtive sucesso, resolvi criar o tópico.
Recentemente iniciei a construção de relatórios da minha aplicação, após uma boa pesquisa na escolha da plataforma de geração de relatórios, optei pelo uso do IReports e JasperReports 4.0.1.
Ótimo, adorei o IReports, efetuei uma série de relatórios de testes e visualização como java application e todos funcionaram muito bem, porém no momento que eu criei o Servlet e fui testá-lo na minha aplicação, começou a aparecer alguns erros ao levantar o Tomcat 7.
Segue abaixo o log de um dos erros:
AVISO: Unable to load class [groovy.jmx.builder.package-info] to check against the @HandlesTypes annotation of one or more ServletContentInitializers.
java.lang.ClassFormatError: Illegal class name “groovy/jmx/builder/package-info” in class file groovy/jmx/builder/package-info
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2818)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1148)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1643)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
at org.apache.catalina.startup.ContextConfig.checkHandlesTypes(ContextConfig.java:1947)
at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:1910)
at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1797)
at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1756)
at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1742)
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1245)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:874)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:317)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:89)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4974)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1035)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:774)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1035)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:291)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:724)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
at org.apache.catalina.startup.Catalina.start(Catalina.java:620)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:304)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
Anteriormente, ainda estava dando também estouro do Permgen. Esse estouro não deixava o Tomcat levantar. Eu consegui resolver esse problema tirando alguns dos jars de dependência do JasperReports.
Mesmo com o erro acima, o Tomcat 7 levanta e minha aplicação funciona normalmente, inclusive os relatórios.
Gostaria de saber se alguém sabe o que está acontecendo e porque esse erro ocorre mesmo sem impedir o funcionamento da minha app.
Desde já muito obrigado e ótimo carnaval a todos,
Titvs