我正在尝试在使用IBM WebSphere 6.1的Web应用程序中使用JBPM v5.4。 JBPM附带protobuf-java-2.4.1.jar
所以我在我的Web应用程序中添加了这个jar。但是当我启动服务器时,由于这个jar,我得到了以下异常。当我删除这个jar时,一切正常(除非使用portbuf功能,java.lang.NoClassDefFoundError
发生,并且这是预期的)。
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
实际发生了什么,我该怎么做才能解决它?
更新
我在其protobuf-java-2.4.1.jar
文件夹中创建了一个只有WEB-INF/lib
的空网络应用程序。服务器在启动时抛出相同的异常。但是当我在tomcat 6.33中部署应用程序时,它会毫无例外地启动。
更新 当我在我的测试服务器上部署应用程序时,它工作正常。 以下是我的测试和开发机器环境特定信息
测试
OS: Linux
WebSphere: v6.1.0.29
Java: J2RE 1.5.0 IBM J9 2.3 Linux x86-32 j9vmxi3223-20060504 (JIT enabled)
开发
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)
答案 0 :(得分:1)
这看起来像是产品错误,因此我建议在IBM开设PMR。
作为解决方法,您可以尝试将有问题的JAR移动到共享库,然后将共享库与WAR模块关联。从类加载的角度来看,这与在WAR中包含JAR具有相同的效果,但它应该阻止注释扫描器查看JAR。