Hey, I am trying to use iPOJO API to create component type. (I don’t want to 
use iPOJO Annotations).
In my bundle start method, I have the following code:
public void start(BundleContext context)
{

    ComponentType x = new PrimitiveComponentType()
            .setBundleContext(context)
            .setClassName(InstanceFactoryImpl.class.getName())
            .setValidateMethod("start")
            .setInvalidateMethod("stop");


            x.start();

            try {
                x.createInstance();
            } catch (UnacceptableConfiguration e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (MissingHandlerException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (ConfigurationException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            System.out.println("and we are done!");
}
InstanceFactoryImpl class is in the same package as the following:
public class InstanceFactoryImpl implements instancefactory.InstanceFactory{


    @Override
    public void start() {



    }

    @Override
    public void stop() {

    }



}
When I load my bundle to Felix framework in my java application, I get the 
following error:
[ERROR]  : [instancefactoryImpl.InstanceFactoryImpl-0] createInstance -> Cannot 
invoke the constructor (method not found) : 
instancefactoryImpl.InstanceFactoryImpl.<init>(org.apache.felix.ipojo.InstanceManager)
java.lang.NoSuchMethodException: 
instancefactoryImpl.InstanceFactoryImpl.<init>(org.apache.felix.ipojo.InstanceManager)
    at java.lang.Class.getConstructor0(Class.java:2715)
    at java.lang.Class.getDeclaredConstructor(Class.java:1987)
    at 
org.apache.felix.ipojo.InstanceManager.createObject(InstanceManager.java:726)
    at 
org.apache.felix.ipojo.InstanceManager.getPojoObject(InstanceManager.java:923)
    at 
org.apache.felix.ipojo.handlers.lifecycle.callback.LifecycleCallbackHandler.__M_stateChanged(LifecycleCallbackHandler.java:156)
    at 
org.apache.felix.ipojo.handlers.lifecycle.callback.LifecycleCallbackHandler.stateChanged(LifecycleCallbackHandler.java)
    at org.apache.felix.ipojo.InstanceManager.setState(InstanceManager.java:536)
    at org.apache.felix.ipojo.InstanceManager.start(InstanceManager.java:418)
    at 
org.apache.felix.ipojo.ComponentFactory.createInstance(ComponentFactory.java:179)
    at 
org.apache.felix.ipojo.IPojoFactory.createComponentInstance(IPojoFactory.java:319)
    at 
org.apache.felix.ipojo.IPojoFactory.createComponentInstance(IPojoFactory.java:240)
    at 
org.apache.felix.ipojo.api.ComponentType.createInstance(ComponentType.java:79)
    at instancefactoryImpl.Activator.start(Activator.java:37)
    at 
org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:645)
    at org.apache.felix.framework.Felix.activateBundle(Felix.java:2146)
    at org.apache.felix.framework.Felix.startBundle(Felix.java:2064)
    at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955)
    at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:942)
    at embedder.HostApplication.<init>(HostApplication.java:148)
    at embedder.Embedder.main(Embedder.java:12)
[ERROR] instancefactoryImpl.InstanceFactoryImpl : Cannot create a POJO 
instance, the POJO constructor cannot be found
org.apache.felix.ipojo.ConfigurationException: The configuration is not correct 
for the type instancefactoryImpl.InstanceFactoryImpl : Cannot create a POJO 
instance, the POJO constructor cannot be found
    at 
org.apache.felix.ipojo.IPojoFactory.createComponentInstance(IPojoFactory.java:328)
    at 
org.apache.felix.ipojo.IPojoFactory.createComponentInstance(IPojoFactory.java:240)
    at 
org.apache.felix.ipojo.api.ComponentType.createInstance(ComponentType.java:79)
    at instancefactoryImpl.Activator.start(Activator.java:37)
    at 
org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:645)
    at org.apache.felix.framework.Felix.activateBundle(Felix.java:2146)
    at org.apache.felix.framework.Felix.startBundle(Felix.java:2064)
    at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955)
    at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:942)
    at embedder.HostApplication.<init>(HostApplication.java:148)
    at embedder.Embedder.main(Embedder.java:12)
Caused by: org.apache.felix.ipojo.ConfigurationException: Cannot create a POJO 
instance, the POJO constructor cannot be found
    at 
org.apache.felix.ipojo.ComponentFactory.createInstance(ComponentFactory.java:191)
    at 
org.apache.felix.ipojo.IPojoFactory.createComponentInstance(IPojoFactory.java:319)
    ... 10 more
Caused by: java.lang.RuntimeException: Cannot create a POJO instance, the POJO 
constructor cannot be found
    at 
org.apache.felix.ipojo.InstanceManager.createObject(InstanceManager.java:766)
    at 
org.apache.felix.ipojo.InstanceManager.getPojoObject(InstanceManager.java:923)
    at 
org.apache.felix.ipojo.handlers.lifecycle.callback.LifecycleCallbackHandler.__M_stateChanged(LifecycleCallbackHandler.java:156)
    at 
org.apache.felix.ipojo.handlers.lifecycle.callback.LifecycleCallbackHandler.stateChanged(LifecycleCallbackHandler.java)
    at org.apache.felix.ipojo.InstanceManager.setState(InstanceManager.java:536)
    at org.apache.felix.ipojo.InstanceManager.start(InstanceManager.java:418)
    at 
org.apache.felix.ipojo.ComponentFactory.createInstance(ComponentFactory.java:179)
    ... 11 more
Caused by: java.lang.NoSuchMethodException: 
instancefactoryImpl.InstanceFactoryImpl.<init>(org.apache.felix.ipojo.InstanceManager)
    at java.lang.Class.getConstructor0(Class.java:2715)
    at java.lang.Class.getDeclaredConstructor(Class.java:1987)
    at 
org.apache.felix.ipojo.InstanceManager.createObject(InstanceManager.java:726)
    ... 17 more
I am getting the error at the following line:
x.createInstance();
I tried to explicitly define a constructor, and to add a method called "init". 
All this failed, and the same error keeps showing. What should I do? Thanks?


Kind Regards,
Zaid Almahmoud
Research Assistant
[cid:[email protected]]<http://www.ebtic.org/>
Khalifa University of Science, Technology, and Research
Abu Dhabi - United Arab Emirates
TEL: 00971-2-401-8178
MOB: 00971-50-9619601

Reply via email to