[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Newsgroup Home]
|
[news.eclipse.platform.rcp] OSGI/RCP Errors
|
Hello,
I have an issue with calling an OSGI service. Using this activator code:
package com.javaworld.sample.helloworldrcp;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceReference;
import com.javaworld.sample.helloservice.HelloService;
/**
* The activator class controls the plug-in life cycle
*/
public class RCPActivator extends AbstractUIPlugin {
public static final String PLUGIN_ID =
"com.javaworld.sample.helloworldRCP";
private static RCPActivator plugin;
public RCPActivator() {
}
ServiceReference helloServiceReference;
public void start(BundleContext context) throws Exception {
super.start(context);
helloServiceReference = context.getServiceReference(HelloService.class
.getName());
HelloService helloService = (HelloService) context
.getService(helloServiceReference);
System.out.println(helloService.sayHello());
plugin = this;
}
public void stop(BundleContext context) throws Exception {
super.stop(context);
context.ungetService(helloServiceReference);
plugin = null;
}
public static RCPActivator getDefault() {
return plugin;
}
public static ImageDescriptor getImageDescriptor(String path) {
return imageDescriptorFromPlugin(PLUGIN_ID, path);
}
}
I can run this project as an OSGI framework and the calls to HelloService
work correctly.
If I run this same exact code as an Eclipse Application (which it is an
RCP application with a view), the OSGI calls crash giving me this error.
!ENTRY org.eclipse.osgi 4 0 2008-05-13 15:49:03.220
!MESSAGE Application error
!STACK 1
org.eclipse.core.runtime.CoreException: Plug-in
com.javaworld.sample.helloworldRCP was unable to load class
com.javaworld.sample.helloworldrcp.Application.
atorg.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.throwException(RegistryStrategyOSGI.java:180)
atorg.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:162)
atorg.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:788)
atorg.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
atorg.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:51)
atorg.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:165)
atorg.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
atorg.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
atorg.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363)
atorg.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176)
atsun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
atjava.lang.reflect.Method.invoke(Method.java:597)
atorg.eclipse.equinox.launcher.Main.invokeFramework(Main.java:508)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:447)
at org.eclipse.equinox.launcher.Main.run(Main.java:1173)
at org.eclipse.equinox.launcher.Main.main(Main.java:1148)
org.eclipse.core.runtime.CoreException[1]:
org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter$TerminatingClassNotFoundException:
An error occurred while automatically activating bundle
com.javaworld.sample.helloworldRCP (6).
atorg.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:125)
atorg.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:417)
atorg.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:189)
atorg.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(BundleLoader.java:340)
atorg.eclipse.osgi.framework.internal.core.BundleLoader.findClassInternal(BundleLoader.java:408)
atorg.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:369)
atorg.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:357)
atorg.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:83)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at
org.eclipse.osgi.framework.internal.core.BundleLoader.loadClass(BundleLoader.java:289)
atorg.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:227)
atorg.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1269)
atorg.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:160)
atorg.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:788)
atorg.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
atorg.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:51)
atorg.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:165)
atorg.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
atorg.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
atorg.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363)
atorg.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
atjava.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:508)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:447)
at org.eclipse.equinox.launcher.Main.run(Main.java:1173)
at org.eclipse.equinox.launcher.Main.main(Main.java:1148)
Caused by: org.osgi.framework.BundleException: Exception in
com.javaworld.sample.helloworldrcp.RCPActivator.start() of bundle
com.javaworld.sample.helloworldRCP.
at
org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:1018)
at
org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:974)
at
org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:346)
at
org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:260)
at
org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:400)
at
org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:111)
... 28 more
Causedby:java.lang.NullPointerExceptionatorg.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(BundleContextImpl.java:880)
at
com.javaworld.sample.helloworldrcp.RCPActivator.start(RCPActivator.java:27)
at
org.eclipse.osgi.framework.internal.core.BundleContextImpl$2.run(BundleContextImpl.java:999)
at java.security.AccessController.doPrivileged(Native Method)
at
org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:993)
... 33 more
I member of my team with the same configuration has it working on his
machine, we can't seem to pinpoint the problem though.
Any suggestions would be helpful.
-Shaun