Hi, I’ve added a comment on the issue. It looks like you are using an outdated version of the API bundle.
Clement On 2 mars 2014, at 21:12, Zaid Jamal Saeed Al Mahmoud <[email protected]> wrote: > I created an issue. Here's the link: > > https://issues.apache.org/jira/browse/FELIX-4443 > > > I appreciate your help. > > > Zaid > > -----Original Message----- > From: Clement Escoffier [mailto:[email protected]] > Sent: 02 آذار, 2014 11:16 م > 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 20:06, Zaid Jamal Saeed Al Mahmoud > <[email protected]> wrote: > >> I will send my bundle and my java project to your email address (privately) >> since I don't know Jira Ticket. > > Jira is the bug tracker we use: > https://issues.apache.org/jira/browse/FELIX/?selectedTab=com.atlassian.jira.jira-projects-plugin:summary-panel > > You can create an issue, attach your code, add comments… The advantage is > that you can follow the resolution of your issue. Also, other people can > check the fix or turn around. > > Clement > >> >> >> 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] >> > > > --------------------------------------------------------------------- > 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]

