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;

    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
users@xwiki.org
http://lists.xwiki.org/mailman/listinfo/users

Reply via email to