I am missing something here. I am creating a new class and waht to have the resource resolver factory loaded using the @Reference annotation.
But it is not working and I am always getting an NPE when I use it.
Would someone help me to understand why? What am I missing?
Thanks.
@Component(metatype = false, immediate = true)
@Service(value = TestComponent.class)
@Properties({ @org.apache.felix.scr.annotations.Property(name = Constants.SERVICE_DESCRIPTION, value = "TestComponent"),
@org.apache.felix.scr.annotations.Property(name = Constants.SERVICE_VENDOR, value = GeneralConstants.VENDOR),
@org.apache.felix.scr.annotations.Property(name = "process.label", value = "TestComponent") })
public class TestComponentImpl implements TestComponent {
protected static final Logger LOG = LoggerFactory.getLogger( TestComponent.class);
@Reference( policy = ReferencePolicy.STATIC )
private ResourceResolverFactory resolverFactory;
Solved! Go to Solution.
Hi,
resourceResolver = new ReadServiceImpl().getResourceResolver();
That's the problem. You are constructing the ReadServiceImpl via Constructor, and in that way SCR cannot inject any references. You should make the ReadServiceImpl a service and let SCR manage its lifecycle.
Jörg
Seems like I was right with my suggestion! Hopefully you can resolve this issue now by actually referencing the ReadService you referenced the DataSourceLookup!
Views
Replies
Total Likes
Thanks for all your assistance. This has help significantly!
Views
Likes
Replies
Views
Likes
Replies