2013-06-13 2 views
0

Я пытаюсь использовать JBPM v5.4 в своем веб-приложении с использованием IBM WebSphere 6.1. JBPM поставляется с protobuf-java-2.4.1.jar, поэтому я добавил эту банку в свое веб-приложение. Но когда я запускаю сервер, я получил следующее исключение из-за этой банки. Когда я удаляю эту банку, все работает нормально (за исключением случаев использования функции portbuf, происходит java.lang.NoClassDefFoundError, и это ожидается).ProtoBuf jar вызывает исключение при использовании в веб-приложении

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 Я создал пустой веб-приложение с только 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

Это выглядит как ошибка продукта, поэтому я рекомендую открывать PMR с IBM ,

В качестве обходного пути вы можете попробовать переместить проблемный JAR в общую библиотеку, а затем связать совместно используемую библиотеку с модулем WAR. Это будет иметь такой же эффект от перспективы загрузки класса, как включение JAR в WAR, но это должно помешать сканеру аннотаций смотреть на JAR.

+0

Когда я связываю shared lib с WAR, на экране отображается следующее сообщение: «Исключение, вызванное RequiredModelMBean при попытке вызвать операцию setApplicationInfo com.ibm.websphere.management.exception.AdminException: ADMA017EE' –

+0

Кажется, проблема с продуктом , У меня есть вопрос с моим последним наблюдением ... –

+1

Похоже, что тестовый/рабочий сервер находится на значительно более новом исправлении, чем сервер разработки, что является хорошим доказательством того, что это проблема продукта. Я бы рекомендовал обновить сервер разработки. Я не знаю, что такое ошибка AdminException; это похоже на несвязанную проблему, которую вам нужно будет расследовать отдельно. –

Смежные вопросы