I'm running into a startup problem using Tomcat 8 and Java 8
during annotation scanning.

I get many error messages similar to these two:

Jun 30, 2014 12:44:26 PM org.apache.catalina.startup.ContextConfig
processAnnotationsWebResource
SEVERE: Unable to process web resource
[/WEB-INF/classes/com/foo/printer/GPrinter.class] for annotations
org.apache.tomcat.util.bcel.classfile.ClassFormatException: Expected class
`CONSTANT_Utf8' at index 283 and got [7]
at
org.apache.tomcat.util.bcel.classfile.ConstantPool.getConstant(ConstantPool.java:207)
at
org.apache.tomcat.util.bcel.classfile.Attribute.readAttribute(Attribute.java:83)
at
org.apache.tomcat.util.bcel.classfile.FieldOrMethod.<init>(FieldOrMethod.java:76)
at
org.apache.tomcat.util.bcel.classfile.ClassParser.readMethods(ClassParser.java:226)
at
org.apache.tomcat.util.bcel.classfile.ClassParser.parse(ClassParser.java:101)
at
org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:1987)
at
org.apache.catalina.startup.ContextConfig.processAnnotationsWebResource(ContextConfig.java:1897)
at
org.apache.catalina.startup.ContextConfig.processAnnotationsWebResource(ContextConfig.java:1892)
at
org.apache.catalina.startup.ContextConfig.processAnnotationsWebResource(ContextConfig.java:1892)
at
org.apache.catalina.startup.ContextConfig.processAnnotationsWebResource(ContextConfig.java:1892)
at
org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1135)
at
org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:767)
at
org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:302)
at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at
org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5083)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:724)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:700)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:714)
at
org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:581)
at
org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1686)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

Jun 30, 2014 12:44:26 PM org.apache.catalina.startup.ContextConfig
processAnnotationsWebResource
SEVERE: Unable to process web resource
[/WEB-INF/classes/com/foo/printer/impl/GTile.class] for annotations
java.io.EOFException
at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:340)
at
org.apache.tomcat.util.bcel.classfile.Utility.swallowMethodParameters(Utility.java:188)
at
org.apache.tomcat.util.bcel.classfile.Attribute.readAttribute(Attribute.java:159)
at
org.apache.tomcat.util.bcel.classfile.FieldOrMethod.<init>(FieldOrMethod.java:76)
at
org.apache.tomcat.util.bcel.classfile.ClassParser.readMethods(ClassParser.java:226)
at
org.apache.tomcat.util.bcel.classfile.ClassParser.parse(ClassParser.java:101)
at
org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:1987)
at
org.apache.catalina.startup.ContextConfig.processAnnotationsWebResource(ContextConfig.java:1897)
at
org.apache.catalina.startup.ContextConfig.processAnnotationsWebResource(ContextConfig.java:1892)
at
org.apache.catalina.startup.ContextConfig.processAnnotationsWebResource(ContextConfig.java:1892)
at
org.apache.catalina.startup.ContextConfig.processAnnotationsWebResource(ContextConfig.java:1892)
at
org.apache.catalina.startup.ContextConfig.processAnnotationsWebResource(ContextConfig.java:1892)
at
org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1135)
at
org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:767)
at
org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:302)
at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at
org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5083)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:724)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:700)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:714)
at
org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:581)
at
org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1686)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

I tried disabling annotation scanning by putting metadata-complete="true" in
web.xml, but scanning is still being done.  I suspect part of that is
because
the application is using WebSockets, so Tomcat really does need to scan for
annotations like java.websocket.server.ServerEndpoint.

I'm using Tomcat 8.0.9.  I saw the same problem in 8.0.8 as well, but
the error is NOT in 8.0.5.

The Java version is 1.8.0_05 (64-bit linux build)

Any help much appreciated.

Reply via email to