Nano Hash - криптовалюты, майнинг, программирование

Почему Websphere не любит BIRT?

Я пытаюсь начать развертывание проекта в Websphere и получаю следующий след ошибки. (сокращенно)

ERROR org.springframework.web.context.ContextLoader - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'birtView' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Cannot resolve reference to bean 'birtEngine' while setting bean property 'birtEngine'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'birtEngine': FactoryBean threw exception on object creation; nested exception is java.lang.RuntimeException: Could not start the Birt engine!
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'birtEngine': FactoryBean threw exception on object creation; nested exception is java.lang.RuntimeException: Could not start the Birt engine!
Caused by: java.lang.RuntimeException: Could not start the Birt engine!
Caused by: org.eclipse.birt.core.exception.BirtException: error.CannotStartupOSGIPlatform
Caused by: org.eclipse.birt.core.framework.FrameworkException: Cant register the ExtensionRegistry classpath
Caused by: org.eclipse.core.runtime.CoreException: Extension registry provider is already set.

Решение третьей снизу ошибки, которое я нашел в Интернете, заключалось в удалении следующей строки кода.

config.setEngineHome("C:/birt-runtime-3_7_0/ReportEngine");

Однако этого нет и не нужно для нашей установки. Он (используемый специальный код BIRT) очень похож на этот пример в Интернете:

http://www.springsource.org/BusinessIntelligenceWithSpringAndBIRT

BirtView и BirtEngineFactory — единственные важные части моего проекта. Я перешел на эту страницу ошибок и запись на форуме и попробовал добавить код. Это не работает. Проект запускается и работает на Tomcat 6x без проблем.

http://www.eclipse.org/forums/index.php/m/727929/

https://bugs.eclipse.org/bugs/show_bug.cgi?id=351052

У меня есть порядок загрузчика классов в Web Sphere: «Сначала загружаются классы с загрузчиком классов приложения». как в примере по ссылке ниже.

http://wiki.eclipse.org/BirtPOJO_Viewer_WebSphere_Deployment

Я все еще получаю тот же набор ошибок, и я не уверен, что еще я должен делать. Я знаю, что немного сложно спросить об этом без публикации кода, но может ли кто-нибудь подумать о том, что мне следует искать? Спасибо.

05.11.2012

  • заставить плагины, связанные с eclipse, работать в WAS всегда было кошмаром. Почему вы не используете отчеты из яшмы? 06.11.2012
  • Опубликуйте файл конфигурации Spring, версию WebSphere, BIRT и Spring. 06.11.2012
  • Чтобы ответить вам обоим, я работаю над чем-то, что оставили внешние консультанты. Выкладывать файлы тоже не вариант. Однако Websphere 7.1, BIRT 3.7, Spring 3.1 — это то, что я могу сказать. Это и один из файлов, config.wsdd, меня немного беспокоит, так как я только что скопировал его из другого приложения. Чтобы добавить больше информации, есть еще один механизм BIRT в отдельном приложении, но на том же сервере. 06.11.2012

Ответы:


1

У меня была точно такая же ошибка, как у вас. Я использую BIRT 3.7.2 и IBM WAS 8.5.

Ссылаясь на описанную ниже ошибку, org.eclipse.core.runtime.CoreException при перезапуске ReportEngine

и фактическая причина ошибки, указанная ниже, ServiceLauncher.shutdown() не освободить RegistryProvider по умолчанию

Я добавил следующую строку перед вызовом Platform.startup(..) RegistryProviderFactory.releaseDefault();

После этого отчеты BIRT работают нормально.

Но я сомневаюсь, что это что-то сломает во время выполнения WAS или нет. Причина этого...

Как поясняется в сообщении об ошибке, это исключение возникает при второй попытке запуска платформы. Здесь, в Platform.shutdown(), RegistryProvider не освобождается и, следовательно, исключение.

Теперь, в моем случае, IBM Websphere 8.5 внутренне использует OSGi и, следовательно, запускает платформу OSGi. Следовательно, когда наше приложение пытается снова запустить Платформу (второй запуск), возникает исключение. Меня беспокоит то, что это не должно сломать среду выполнения WAS (поскольку она использует OSGi внутри).

Поставщик реестра не является нулевым, так как он задается средой выполнения BIRT, поэтому единственная проблема здесь может заключаться в несоответствии версии класса, т. е. поставщик реестра WAS и поставщик реестра BIRT, если они отличаются, то возникают конфликты версий.

Я не уверен в решении, которое я использовал. Знатоки, подскажите.

29.10.2013
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..