[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [equinox-dev] servletbridge activator ClassNotFound exception

John,
Off the top of my head I don't see anything wrong however from your description I'm wondering if you're using "export" to create your bundles or just handcrafting from the files on disk.
Also, this is primarily a dev-list and for this sort of problem I'd suggest re-asking your question on the equinox users newgroup.
-Simon

equinox-dev-bounces@xxxxxxxxxxx wrote on 05/13/2008 09:52:29 AM:

> Thanks Simon that lead me down the right path.
>
> I was actually running against a "cracked" open bundle already, actually
> I was installing my eclipse project root as the bundle instead of a
> packaged jar.  That's when I realized my compiled classes were in my
> output folder duh (i.e. /bin).  So I packaged up my two bundles as jars
> and my activator works.  However now it is not finding the exported
> packaged in the other bundle :(.  Apparently the eclipse tooling (PDE
> and equinox launcher) resolves all this for you when launching equinox
> stand-alone via the eclipse launch config.  However you lose all these
> goodies when you launch it via the servlet bridge and start installing
> bundles manually ;).
>
> Here is my setup,
>
> I have one bundle HelloWorld, that exposes one package
> (com.railinc.example.hello) that contains one Interface (HelloWorld).
> Here is its manifest:
> Manifest-Version: 1.0
> Bundle-ManifestVersion: 2
> Bundle-Name: HelloWorld Plug-in
> Bundle-SymbolicName: HelloWorld
> Bundle-Version: 1.0.2
> Bundle-Localization: plugin
> Export-Package: com.railinc.example.hello
> Bundle-ClassPath: .
>
> My HelloWorld.jar has the following:
> com/railinc/example/hello/HelloWorld.class
> meta-inf/Manifest.mf
>
> I then have another bundle HelloNoSpring that has an internal
> implementation of the HelloWorld interface and an Activator.  Its
> manifest looks like this:
> Manifest-Version: 1.0
> Bundle-ManifestVersion: 2
> Bundle-Name: HelloNoSpring Plug-in
> Bundle-SymbolicName: HelloNoSpring
> Bundle-Version: 1.0.4
> Bundle-Activator: com.railinc.example.activator.HelloNoSpringActivator
> Bundle-Localization: plugin
> Import-Package: com.railinc.example.hello,
>  org.osgi.framework;version="1.3.0"
> Bundle-ClassPath: .
>
> Its jar has the following:
> com/railinc/example/activator/HelloNoSpringActivator.class
> com/railinc/example/hello/impl/HelloWorldImpl.class
> meta-inf/Manifest.mf
>
>
> * HelloWorldImpl implements the HelloWorld Interface
> * The Activator news up an instance of HelloWorldImpl and tries to
> invoke it.
>
> If I comment out the HelloWorld part my activator runs fine now.
> However when I add the HelloWorld stuff in there it fails saying it
> can't find my HelloWorld interface :(.
>
> Another very interesting point!
>
> If I add the HelloWorld bundle as a required bundle instead of an
> imported package it works, but when I try to just do it as an imported
> package, I get the CNFE :(.  Any ideas anyone?
> _______________________________________________
> equinox-dev mailing list
> equinox-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/equinox-dev