java.lang.NoClassDefFoundError: org.eclipse.core.runtime.RegistryFactory

Я пытаюсь использовать DataObjects в Java:

DataFactory factory = DataFactory.INSTANCE;

в одном проекте Java с использованием:

import commonj.sdo.DataObject;

И я получаю эту ошибку:

Exception in thread "main" java.lang.NoClassDefFoundError: org.eclipse.core.runtime.RegistryFactory
 at org.eclipse.core.internal.runtime.InternalPlatform.getRegistry(InternalPlatform.java:671)
 at org.eclipse.core.runtime.Platform.getExtensionRegistry(Platform.java:867)
 at com.ibm.wsspi.sca.extensions.ServiceProviderRegistry.loadServiceProviders(ServiceProviderRegistry.java:167)
 at com.ibm.wsspi.sca.extensions.ServiceProviderRegistry$1.run(ServiceProviderRegistry.java:88)
 at java.security.AccessController.doPrivileged(AccessController.java:202)
 at com.ibm.wsspi.sca.extensions.ServiceProviderRegistry.getServiceProviders(ServiceProviderRegistry.java:86)
 at com.ibm.wsspi.sca.extensions.ServiceProviderRegistry.getServiceProvider(ServiceProviderRegistry.java:101)
 at com.ibm.ws.sca.resources.loader.ClassLoaderRegistry.<clinit>(ClassLoaderRegistry.java:59)
 at java.lang.J9VMInternals.initializeImpl(Native Method)
 at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
 at com.ibm.ws.sca.internal.container.impl.ContainerImpl.<clinit>(ContainerImpl.java:356)
 at java.lang.J9VMInternals.initializeImpl(Native Method)
 at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
 at com.ibm.ws.sca.internal.container.impl.ContainerFactoryImpl.createContainer(ContainerFactoryImpl.java:70)
 at com.ibm.ws.sca.internal.container.Container.<clinit>(Container.java:111)
 at java.lang.J9VMInternals.initializeImpl(Native Method)
 at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)

3 ответа

Решение

Вы используете Process Server? Я почти уверен, что com.ibm.ws.sca.internal.container.impl.ContainerImpl является классом Process Server...

Я столкнулся с аналогичной проблемой при попытке создать экземпляр класса BOFactory из JUnit. Я смог решить это, добавив org-eclipse-equinox-registry.jar файлы в мои проекты вместе с jar-файлами SDO.

Добавление файлов JAR в проект

Смотрите также: Junit: Исключительная ситуация при создании экземпляра BOFactory

Я думаю, что приложение основано на EMF SDO?

Вместо Java-приложения вы можете запускать ваше приложение как Eclipse-приложение в вашей IDE, потому что приложению требуется механизм загрузки комплекта OSGi для загрузки требуемого комплекта (т.е. org.eclipse.core.runtime) во время выполнения.

Другие вопросы по тегам