2013-06-13 38 views
0

我正在嘗試在使用IBM WebSphere 6.1的Web應用程序中使用JBPM v5.4。 JBPM自帶protobuf-java-2.4.1.jar,所以我在我的Web應用程序中添加了這個jar。但是當我啓動服務器時,由於這個jar,我得到了以下異常。當我刪除這個jar時,一切工作正常(除了使用portbuf功能時,發生java.lang.NoClassDefFoundError,這是預期的)。ProtoBuf jar在Web應用程序中使用時導致異常

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 

究竟發生了什麼,我應該怎麼做才能解決它?

UPDATE 我創建了一個空的web應用只protobuf-java-2.4.1.jar在它的WEB-INF/lib文件夾。服務器在啓動時拋出相同的異常。但是,當我在tomcat 6.33中部署應用程序時,它無任何例外地開始。

UPDATE 當我在測試服務器上部署應用程序時,它工作。 這裏是我的測試和開發機環境的具體信息

測試

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) 

回答

1

這看起來像一個產品的錯誤,所以我建議用IBM打開PMR 。

作爲一種解決方法,您可以嘗試將有問題的JAR移動到共享庫,然後將共享庫與WAR模塊相關聯。這與類加載透視圖具有相同的效果,因爲在WAR中包括JAR,但它應該防止註釋掃描器查看JAR。

+0

當我將共享庫與WAR相關聯時,屏幕上顯示以下消息:'嘗試調用操作時在RequiredModelMBean中拋出異常setApplicationInfo com.ibm.websphere.management.exception.AdminException:ADMA017EE' –

+0

看起來是一個產品問題。我用我最近的觀察結果更新了我的問題...... –

+1

看起來測試/工作服務器位於比開發服務器更新的修補程序包中,這很好地證明了這是產品問題。我建議升級你的開發服務器。我不知道AdminException錯誤的含義是什麼;這似乎是一個不相關的問題,您需要單獨進行調查。 –

相關問題