Hi all,
not sure if this is the right place to ask as this is somehow OSGi
related, but I'm currently working on a service that integrates via SCR
and tries which has a reference to the SlingRepository service.
I used the following code:
/**
* @scr.reference
*/
private SlingRepository repository;
protected void bindRepository(SlingRepository repository) {
this.repository = repository;
}
Bundling work fine (with SCR plugin) and the SCR config file looks ok to me:
<?xml version="1.0" encoding="UTF-8"?>
<components xmlns:scr="http://www.osgi.org/xmlns/scr/v1.0.0">
<scr:component enabled="true" immediate="true"
name="com.day.cq.workflow.osgi.WorkflowServiceWrapper">
<scr:implementation
class="com.day.cq.workflow.osgi.WorkflowServiceWrapper"/>
<scr:service servicefactory="false">
<scr:provide interface="com.day.cq.workflow.WorkflowService"/>
</scr:service>
<scr:property name="cq.workflow.workspace" value="crx.default"/>
<scr:property name="CQWorkflowService.CQ_WORKFLOW_ROOT"
value="/cq-workflow/content"/>
<scr:property name="service.vendor" value="Day Management AG"/>
<scr:property name="cq.workflow.nodetype.url"
value="CQ-INF/nodetypes/workflow.cnd"/>
<scr:property name="service.description" value="Communique 5 workflow
service."/>
<scr:property name="service.pid"
value="com.day.cq.workflow.osgi.WorkflowServiceWrapper"/>
<scr:reference name="repository"
interface="org.apache.sling.jcr.api.SlingRepository" cardinality="1..1"
policy="static" bind="bindRepository" unbind="unbindRepository"/>
</scr:component>
</components>
But when I deploy my service, I get the following exception:
java.lang.IllegalArgumentException: argument type mismatch
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.apache.felix.scr.impl.DependencyManager.invokeBindMethod(DependencyManager.java:886)
at
org.apache.felix.scr.impl.DependencyManager.bind(DependencyManager.java:668)
at
org.apache.felix.scr.impl.ImmediateComponentManager.createImplementationObject(ImmediateComponentManager.java:204)
at
org.apache.felix.scr.impl.ImmediateComponentManager.createComponent(ImmediateComponentManager.java:134)
at
org.apache.felix.scr.impl.AbstractComponentManager.activateInternal(AbstractComponentManager.java:412)
at
org.apache.felix.scr.impl.AbstractComponentManager.enableInternal(AbstractComponentManager.java:333)
at
org.apache.felix.scr.impl.AbstractComponentManager.access$000(AbstractComponentManager.java:45)
at
org.apache.felix.scr.impl.AbstractComponentManager$1.run(AbstractComponentManager.java:103)
at
org.apache.felix.scr.impl.ComponentActorThread.run(ComponentActorThread.java:85)
17.01.2008 14:21:18 *ERROR* o.a.f.scr: Unexpected problem executing task
(java.lang.NullPointerException)
java.lang.NullPointerException
at
org.apache.felix.scr.impl.ImmediateComponentManager.disposeImplementationObject(ImmediateComponentManager.java:271)
at
org.apache.felix.scr.impl.ImmediateComponentManager.deleteComponent(ImmediateComponentManager.java:151)
at
org.apache.felix.scr.impl.AbstractComponentManager.deactivateInternal(AbstractComponentManager.java:479)
at
org.apache.felix.scr.impl.AbstractComponentManager.disableInternal(AbstractComponentManager.java:496)
at
org.apache.felix.scr.impl.AbstractComponentManager.enableInternal(AbstractComponentManager.java:341)
at
org.apache.felix.scr.impl.AbstractComponentManager.access$000(AbstractComponentManager.java:45)
at
org.apache.felix.scr.impl.AbstractComponentManager$1.run(AbstractComponentManager.java:103)
at
org.apache.felix.scr.impl.ComponentActorThread.run(ComponentActorThread.java:85)
Any idea what might be the cause for that problem and how to solve it?
Best regards,
Alex