Hi,
Actually the error makes a lot more sense. Because iPOJO manipulation rely on
some classes of org.apache.felix.ipojo, you need to import this package. All
bundles intended to have iPOJO component, need to import:
org.apache.felix.ipojo and org.apache.felix.ipojo.architecture.
Regards,
Clement
On 15.04.2012, at 02:41, fabiolf wrote:
> Hi Clement,
>
> I did as you said and I was surely doing something wrong because now the
> error changed. My code now is:
>
>
> Bundle bundle = m_context.getBundle(21);
> BundleContext localContext = bundle.getBundleContext();
> try {
> System.out.println("myType");
>
> new PrimitiveComponentType()
> .setBundleContext(localContext)
> .setClassName(ProviderA.class.getName())
> .setValidateMethod("start")
> .setInvalidateMethod("stop")
> .addService(new Service())
> .createInstance("TestProviderA");
> [...]
>
> The bundle 21 is the one that has the TestProviderA class. I'm getting the
> following error:
>
> [ERROR] org.test.iPOJO.providerA.ProviderA : org/apache/felix/ipojo/Pojo
> java.lang.NoClassDefFoundError: org/apache/felix/ipojo/Pojo
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
> at
> org.apache.felix.ipojo.ComponentFactory$FactoryClassloader.defineClass(ComponentFactory.java:501)
> at
> org.apache.felix.ipojo.ComponentFactory.defineClass(ComponentFactory.java:215)
> at
> org.apache.felix.ipojo.ComponentFactory.loadClass(ComponentFactory.java:244)
> at org.apache.felix.ipojo.InstanceManager.load(InstanceManager.java:575)
> at
> org.apache.felix.ipojo.InstanceManager.getClazz(InstanceManager.java:887)
> at org.apache.felix.ipojo.util.Callback.searchMethod(Callback.java:164)
> at org.apache.felix.ipojo.util.Callback.call(Callback.java:223)
> at org.apache.felix.ipojo.util.Callback.call(Callback.java:193)
> at
> org.apache.felix.ipojo.handlers.lifecycle.callback.LifecycleCallback.call(LifecycleCallback.java:86)
> at
> org.apache.felix.ipojo.handlers.lifecycle.callback.LifecycleCallbackHandler.__stateChanged(LifecycleCallbackHandler.java:162)
> at
> org.apache.felix.ipojo.handlers.lifecycle.callback.LifecycleCallbackHandler.stateChanged(LifecycleCallbackHandler.java)
> at
> org.apache.felix.ipojo.InstanceManager.setState(InstanceManager.java:472)
> at
> org.apache.felix.ipojo.InstanceManager.start(InstanceManager.java:354)
> at
> org.apache.felix.ipojo.ComponentFactory.createInstance(ComponentFactory.java:178)
> at
> org.apache.felix.ipojo.IPojoFactory.createComponentInstance(IPojoFactory.java:301)
> at
> org.apache.felix.ipojo.IPojoFactory.createComponentInstance(IPojoFactory.java:238)
> at
> org.apache.felix.ipojo.api.ComponentType.createInstance(ComponentType.java:99)
> at
> org.test.iPOJO.fabioManipulator.FabioManipulatorCmdImpl.create(FabioManipulatorCmdImpl.java:80)
> at
> org.test.iPOJO.fabioManipulator.FabioManipulatorCmdImpl.execute(FabioManipulatorCmdImpl.java:61)
> at
> org.apache.felix.shell.impl.Activator$ShellServiceImpl.executeCommand(Activator.java:286)
> at
> org.apache.felix.shell.tui.Activator$ShellTuiRunnable.run(Activator.java:184)
> at java.lang.Thread.run(Thread.java:680)
> Caused by: java.lang.ClassNotFoundException: org.apache.felix.ipojo.Pojo not
> found by org.test.iPOJO.providerA [21]
> at
> org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1460)
> at
> org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:72)
> at
> org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1843)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
> at org.apache.felix.framework.Felix.loadBundleClass(Felix.java:1723)
> at org.apache.felix.framework.BundleImpl.loadClass(BundleImpl.java:926)
> at
> org.apache.felix.ipojo.ComponentFactory$FactoryClassloader.loadClass(ComponentFactory.java:528)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
> ... 25 more
> [ERROR] org.test.iPOJO.providerA.ProviderA : org/apache/felix/ipojo/Pojo
> org.apache.felix.ipojo.ConfigurationException: The configuration is not
> correct for the type org.test.iPOJO.providerA.ProviderA :
> org/apache/felix/ipojo/Pojo
> at
> org.apache.felix.ipojo.IPojoFactory.createComponentInstance(IPojoFactory.java:308)
> at
> org.apache.felix.ipojo.IPojoFactory.createComponentInstance(IPojoFactory.java:238)
> at
> org.apache.felix.ipojo.api.ComponentType.createInstance(ComponentType.java:99)
> at
> org.test.iPOJO.fabioManipulator.FabioManipulatorCmdImpl.create(FabioManipulatorCmdImpl.java:80)
> at
> org.test.iPOJO.fabioManipulator.FabioManipulatorCmdImpl.execute(FabioManipulatorCmdImpl.java:61)
> at
> org.apache.felix.shell.impl.Activator$ShellServiceImpl.executeCommand(Activator.java:286)
> at
> org.apache.felix.shell.tui.Activator$ShellTuiRunnable.run(Activator.java:184)
> at java.lang.Thread.run(Thread.java:680)
>
> I saw that the class org.apache.felix.ipojo.Pojo can be found in the iPOJO
> bundle and I'm with it started as you can see below:
>
> -> ps
> START LEVEL 1
> ID State Level Name
> [ 0] [Active ] [ 0] System Bundle (4.0.2)
> [ 1] [Active ] [ 1] Apache Felix Bundle Repository (1.6.6)
> [ 2] [Active ] [ 1] Apache Felix iPOJO (1.9.0.SNAPSHOT)
> [ 3] [Active ] [ 1] Apache Felix iPOJO API (1.7.0.SNAPSHOT)
> [ 4] [Active ] [ 1] Apache Felix iPOJO Arch Command
> (1.7.0.SNAPSHOT)
> [ 5] [Active ] [ 1] Apache Felix iPOJO Composite (1.9.0.SNAPSHOT)
> [ 6] [Active ] [ 1] Apache Felix Shell Service (1.4.2)
> [ 7] [Active ] [ 1] Apache Felix Shell TUI (1.4.1)
> [ 8] [Active ] [ 1] Java Utils (1.0.0)
> [ 19] [Active ] [ 1] Fabio Manipulator (1.0.0)
> [ 20] [Active ] [ 1] Testing iPOJO API: Services (1.0.0)
> [ 21] [Active ] [ 1] Testing iPOJO API: Provider A (1.0.0)
> [ 22] [Active ] [ 1] Testing iPOJO API: Provider B (1.0.0)
> [ 23] [Active ] [ 1] Testing iPOJO API: Consumer (1.0.0)
>
> I'm probably doing something wrong again...
>
> Thanks a lot!
> Fabio
>
> --
> View this message in context:
> http://apache-felix.18485.n6.nabble.com/Using-iPOJO-API-to-create-components-and-instances-tp4881802p4882641.html
> Sent from the Apache Felix - Users mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]