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.
Смотрите также: Junit: Исключительная ситуация при создании экземпляра BOFactory
Я думаю, что приложение основано на EMF SDO?
Вместо Java-приложения вы можете запускать ваше приложение как Eclipse-приложение в вашей IDE, потому что приложению требуется механизм загрузки комплекта OSGi для загрузки требуемого комплекта (т.е. org.eclipse.core.runtime) во время выполнения.