How to using Sling Models in Component Java Class




I want to use Sling Models to configure the component as I saw in the "Sling Models Vs WCMUsePojo'' posting.

through the tutorial and configured a custom component using Sling Models,

but Annotation fails when trying to place Java Class File in jcr_root / apps path.

Search for Use Case confirmed that WCMUsePojo is available.

How can i use Sling Models to local java-class in Component Folder?

( * pom.xml file went the same way as the tutorial setup. :  5 - Custom Component )

* Component Structure







                        │  .content.xml


                        │  mid-hero.html

                        │  _cq_editConfig.xml




* Local Java Class File (

package apps.wcde.components.content.test.mid_hero;




import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import javax.inject.Inject;


        adaptables = { Resource.class },

        defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL


public class Controller implements apps.wcde.components.content.test.mid_hero.Controller {

    private static final Logger logger = LoggerFactory.getLogger(Controller.class);


    protected String title;

    public String getTitle() {

        return title;



* htl (mid-hero.html)


<div style="font-size: 40px;"> TEST COMPONENT </div>

<div style="font-size: 20px;"> ${data.title} </div>

View Entire Topic



Hi pdg2491​,pdg2491

I don't think you can include Sling models in components because Sling models are annotation driven POJOs deployed via OSGi bundle.

As stated in the Sling documentation:

The Java Use Provider can be used to load OSGi services, objects exported by bundles or backed by a Resource.

Sling Models Use Provider works in a different manner.

Refer this for more info.