Вопрос

I am trying to use JBPM v5.4 in my web-application using IBM WebSphere 6.1. JBPM comes with protobuf-java-2.4.1.jar so I added this jar in my web application. But when I start server I got following exception due to this jar. When I remove this jar, everything work fine (except when portbuf functionality is used, java.lang.NoClassDefFoundError occurs, and this is expected).

com.ibm.ws.metadata.annotations.AnnotationException: Annotation processing failed for class:  com/google/protobuf/FieldSet.class
    at com.ibm.ws.metadata.annotations.AnnotationConfigReader.getAnnotationData(AnnotationConfigReader.java:462)
    at com.ibm.ws.metadata.annotations.AnnotationConfigReader.populateModuleData(AnnotationConfigReader.java:247)
    at com.ibm.ws.metadata.MetaDataOrchestrator.getModuleData(MetaDataOrchestrator.java:112)
    at com.ibm.ws.websvcs.annotations.collector.WASAnnotationCollector.getMDO(WASAnnotationCollector.java:214)
    at com.ibm.ws.websvcs.annotations.collector.WASAnnotationCollector.collect(WASAnnotationCollector.java:107)
    at com.ibm.ws.websvcs.desc.WSModuleDescriptorImpl.getClassDataObjects(WSModuleDescriptorImpl.java:411)
    at com.ibm.ws.websvcs.desc.WSModuleDescriptorImpl.getWARCDOs(WSModuleDescriptorImpl.java:369)
    at com.ibm.ws.websvcs.desc.WSModuleDescriptorImpl.containsJAXWSWebServices(WSModuleDescriptorImpl.java:210)
    at com.ibm.ws.webservices.admin.deploy.ServiceIndexDataBuilder.getWSData(ServiceIndexDataBuilder.java:48)
    at com.ibm.ws.webservices.admin.deploy.ServiceIndexServerTaskImpl.listWebServices(ServiceIndexServerTaskImpl.java:142)
    at com.ibm.ws.webservices.admin.deploy.ServiceIndexServerTaskImpl.listWebServices(ServiceIndexServerTaskImpl.java:107)
    at com.ibm.ws.webservices.admin.deploy.ServiceIndexServerTask.performTask(ServiceIndexServerTask.java:186)
    at com.ibm.ws.management.application.SchedulerImpl.run(SchedulerImpl.java:262)
    at java.lang.Thread.run(Thread.java:801)
 Caused by: java.util.EmptyStackException
    at java.util.Stack.peek(Stack.java:94)
    at java.util.Stack.pop(Stack.java:76)
    at com.ibm.ws.metadata.annotations.WSSignatureParser.handleGenericGrouping(WSSignatureParser.java:256)
    at com.ibm.ws.metadata.annotations.WSSignatureParser.popStack(WSSignatureParser.java:210)
    at com.ibm.ws.metadata.annotations.WSSignatureParser.parseSignature(WSSignatureParser.java:63)
    at com.ibm.ws.metadata.annotations.WSClassAdapter.visit(WSClassAdapter.java:100)
    at org.objectweb.asm.ClassReader.accept(Unknown Source)
    at org.objectweb.asm.ClassReader.accept(Unknown Source)
    at com.ibm.ws.metadata.annotations.AnnotationConfigReader.getAnnotationData(AnnotationConfigReader.java:440)
    at com.ibm.ws.metadata.annotations.AnnotationConfigReader.populateModuleData(AnnotationConfigReader.java:247)
    at com.ibm.ws.metadata.MetaDataOrchestrator.getModuleData(MetaDataOrchestrator.java:112)
    at com.ibm.ws.websvcs.annotations.collector.WASAnnotationCollector.getMDO(WASAnnotationCollector.java:214)
    at com.ibm.ws.websvcs.annotations.collector.WASAnnotationCollector.collect(WASAnnotationCollector.java:107)
    at com.ibm.ws.websvcs.desc.WSModuleDescriptorImpl.getClassDataObjects(WSModuleDescriptorImpl.java:411)
    at com.ibm.ws.websvcs.desc.WSModuleDescriptorImpl.getWARCDOs(WSModuleDescriptorImpl.java:369)
    at com.ibm.ws.websvcs.desc.WSModuleDescriptorImpl.containsJAXWSWebServices(WSModuleDescriptorImpl.java:210)
    at com.ibm.ws.webservices.admin.deploy.ServiceIndexDataBuilder.getWSData(ServiceIndexDataBuilder.java:48)
    at com.ibm.ws.webservices.admin.deploy.ServiceIndexServerTaskImpl.listWebServices(ServiceIndexServerTaskImpl.java:142)
    at com.ibm.ws.webservices.admin.deploy.ServiceIndexServerTaskImpl.listWebServices(ServiceIndexServerTaskImpl.java:107)
    at com.ibm.ws.webservices.admin.deploy.ServiceIndexServerTask.performTask(ServiceIndexServerTask.java:186)
    at com.ibm.ws.management.application.SchedulerImpl.run(SchedulerImpl.java:262)
    at java.lang.Thread.run(Thread.java:801)

 at java.util.Stack.peek(Stack.java:94)
 at java.util.Stack.pop(Stack.java:76)
 at com.ibm.ws.metadata.annotations.WSSignatureParser.handleGenericGrouping(WSSignatureParser.java:256)
 at com.ibm.ws.metadata.annotations.WSSignatureParser.popStack(WSSignatureParser.java:210)
 at com.ibm.ws.metadata.annotations.WSSignatureParser.parseSignature(WSSignatureParser.java:63)
 at com.ibm.ws.metadata.annotations.WSClassAdapter.visit(WSClassAdapter.java:100)
 at org.objectweb.asm.ClassReader.accept(Unknown Source)
 at org.objectweb.asm.ClassReader.accept(Unknown Source)
 at com.ibm.ws.metadata.annotations.AnnotationConfigReader.getAnnotationData(AnnotationConfigReader.java:440)
 ... 13 more

What is happening actually and what should I do to resolve it?

UPDATE I created an empty webapp with only protobuf-java-2.4.1.jar in it's WEB-INF/lib folder. Server throws same exception on start up. But when I deploye the application in tomcat 6.33 and it starts without any exception.

UPDATE When I deployed the application on my testing server, it worked. Here are my testing and development machines environment specific information

Testing

OS: Linux
WebSphere: v6.1.0.29
Java: J2RE 1.5.0 IBM J9 2.3 Linux x86-32 j9vmxi3223-20060504 (JIT enabled)

Development

OS: Windows 7
WebSphere: v6.1.0.9
Java: J2RE 1.5.0 IBM J9 2.3 Windows Vista x86-32 j9vmwi3223-20070426 (JIT enabled)
Это было полезно?

Решение

This looks like a product error, so I recommend opening a PMR with IBM.

As a workaround, you could try moving the problematic JAR to a shared library, and then associate the shared library with the WAR module. This will have the same effect from a class loading perspective as including the JAR in the WAR, but it should prevent the annotation scanner from looking at the JAR.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top