Hi Debajit,
On Oct 14, 2015 01:17, "Debajit Adhikary" <[email protected]> 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.
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:
>
> <dependency>
> <groupId>org.xwiki.commons</groupId>
> <artifactId>xwiki-commons-script</artifactId>
> <version>${commons.version}</version>
> </dependency>
>
>
> 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
_______________________________________________
users mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/users