I will send my bundle and my java project to your email address (privately) 
since I don't know Jira Ticket.


Zaid

-----Original Message-----
From: Clement Escoffier [mailto:[email protected]] 
Sent: 02 آذار, 2014 11:05 م
To: Apache Felix - Users Mailing List
Subject: Re: Using iPOJO API shows “ Cannot create a POJO instance, the POJO 
constructor cannot be found”


On 2 mars 2014, at 19:56, Zaid Jamal Saeed Al Mahmoud 
<[email protected]> wrote:

> Thank you Mr. Clement for your response.
> 
> Before trying to use manipulation, which I already done in the past. I 
> wanted to show you this interesting scenario,
> 
> This worked for me:
> 
>               new PrimitiveComponentType()
>               .setBundleContext(context)
>               .setClassName(PlainHelloImpl.class.getName())
>               .addService(new Service()) 
>               .createInstance(); // Create the instance
> 
> But this did not work for me:
> 
>               new PrimitiveComponentType()
>               .setBundleContext(context)
>               .setClassName(PlainHelloImpl.class.getName())
>               .createInstance(); // Create the instance
> 
> 
> As you can see, the only difference is adding the service. What? Why?

Thant’s interesting. 
So you mean adding the service makes it work ? 
Could you send me both traces.

Would you be able to share your code (either privately, or attached to a Jira 
ticket) so I can reproduce it ? 

Clement

> 
> 
> Zaid
> 
> -----Original Message-----
> From: Clement Escoffier [mailto:[email protected]]
> Sent: 02 آذار, 2014 10:48 م
> To: Apache Felix - Users Mailing List
> Subject: Re: Using iPOJO API shows “ Cannot create a POJO instance, the POJO 
> constructor cannot be found”
> 
> Hi,
> 
> When using the iPOJO API, it tries to manipulate the component implement 
> classes at runtime (if there are not already manipulated). It looks like this 
> manipulation does not happen in your case. To be sure it is the issue, try to 
> manipulate the class first (add @Component on it, and use ant of maven to 
> build your bundle). 
> 
> Clement
> 
> On 2 mars 2014, at 19:13, Zaid Jamal Saeed Al Mahmoud 
> <[email protected]> wrote:
> 
>> 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
>> 
>> Khalifa University of Science, Technology, and Research Abu Dhabi - 
>> United Arab Emirates
>> TEL: 00971-2-401-8178
>> MOB: 00971-50-9619601
> 
> 
> ---------------------------------------------------------------------
> 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]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to