On 14 Oct 2015 at 06:43:36, Marius Dumitru Florea
([email protected](mailto:[email protected])) wrote:
> Hi Debajit,
>
> On Oct 14, 2015 01:17, "Debajit Adhikary" wrote:
> >
> > I created an XWiki component which is available as a jar file.
> >
> > I have a ScriptService class for the component too:
> >
> > ----
> >
> > @Role
> > public interface SearchClient
> > {
> > String search();
> > }
> >
> > ----
> >
> > @Component
> > @Singleton
> > public class InternalSearchClient implements SearchClient
> > {
> > public String search()
> > {
> > return "test search results";
> > }
> > }
> >
> > ----
> >
> > @Component
> > @Named("internalSearch")
> > @Singleton
> > public class InternalSearchScriptService implements ScriptService
> > {
>
> > @Inject
> > private InternalSearchClient searchClient;
>
> You need to "inject" the role (interface), not directly the implementation.
> That's why you use the Component Manager. Othewise you could have simply
> used the "new" operator to instantiate yourself the component.
Good catch, didn’t see it when I replied yesterday! :)
I guess we could catch this in the AnnotationComponentLoader and report an
error.
Thanks
-Vincent
> Hope this helps,
> Marius
>
> >
> > public String search()
> > {
> > return this.searchClient.search();
> > }
> > }
> >
> > ----
> >
> > I've added all the above files into their own jar with a components.txt
> > file:
> >
> > com.mycompany.wiki.search.InternalSearchClient
> > com.mycompany.wiki.search.InternalSearchScriptService
> >
> > and in my Wiki's pom.xml, I have the following:
> >
> >
> > org.xwiki.commons
> > xwiki-commons-script
> > ${commons.version}
> >
> >
> >
> > Now from my Wiki page, when I do the following:
> >
> > {{groovy}}
> > println(services.internalSearch.search())
> > {{/groovy}}
> >
> > I get an error message saying "java.lang.NullPointerException: Cannot
> > invoke method search() on null object"
> >
> > What am I doing wrong here?
> >
> > (I followed the directions in
> > http://platform.xwiki.org/xwiki/bin/view/DevGuide/WritingComponents — have
> > these directions changed, and/or is there anything else I need to do? )
_______________________________________________
users mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/users