Expand my Community achievements bar.

SOLVED

Problem to use class WCMUsePojo with uber-jar-6.3.1 on AEM6.3

Avatar

Level 2

Hi,

I am trying to use the class WCMUsePojo to access a service, but I am getting the error: com.adobe.cq.sightly,version=[2.2,3) -- Cannot be resolved

I have searched all over the internet, and it seems that I just have to use uber-jar. The problem is that I am using uber-jar-6.3.1 and I keep having this same error.

if someone can give me a new approach to follow, I would be very happy, because I don't know what to do anymore. Below is dependencies of my core pom.xml

<dependencies>

        <!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api -->

<dependency>   

   <groupId>javax.servlet.jsp</groupId>

<artifactId>javax.servlet.jsp-api</artifactId>  

</dependency>

        <dependency>

            <groupId>org.osgi</groupId>

            <artifactId>osgi.cmpn</artifactId>

        </dependency>

        <dependency>

            <groupId>org.osgi</groupId>

            <artifactId>osgi.annotation</artifactId>

        </dependency>

        <!-- Other Dependencies -->

        <dependency>

            <groupId>org.slf4j</groupId>

            <artifactId>slf4j-api</artifactId>

        </dependency>

       <dependency>

    <groupId>javax.servlet</groupId>

    <artifactId>servlet-api</artifactId>

</dependency>

        <dependency>

            <groupId>javax.jcr</groupId>

            <artifactId>jcr</artifactId>

        </dependency>

        <dependency>

            <groupId>org.apache.sling</groupId>

            <artifactId>org.apache.sling.models.api</artifactId>

        </dependency>

        <dependency>

            <groupId>junit</groupId>

            <artifactId>junit</artifactId>

        </dependency>

        <dependency>

            <groupId>org.mockito</groupId>

            <artifactId>mockito-core</artifactId>

        </dependency>

        <dependency>

            <groupId>junit-addons</groupId>

            <artifactId>junit-addons</artifactId>

        </dependency>

        <!-- https://mvnrepository.com/artifact/org.apache.felix/org.apache.felix.scr.annotations -->

<dependency>

    <groupId>org.apache.felix</groupId>

    <artifactId>org.apache.felix.scr.annotations</artifactId>

</dependency>

<dependency>

    <groupId>com.adobe.aem</groupId>

    <artifactId>uber-jar</artifactId>

    <classifier>obfuscated-apis</classifier>

</dependency>

<dependency>

            <groupId>org.apache.geronimo.specs</groupId>

            <artifactId>geronimo-atinject_1.0_spec</artifactId>

        </dependency>        

    </dependencies>

Dependencies of my root pom.xml

<dependencyManagement>

        <dependencies>

            <dependency>

                <groupId>org.osgi</groupId>

                <artifactId>osgi.cmpn</artifactId>

                <version>6.0.0</version>

                <scope>provided</scope>

            </dependency>

            <dependency>

                <groupId>org.osgi</groupId>

                <artifactId>osgi.annotation</artifactId>

                <version>6.0.1</version>

                <scope>provided</scope>

            </dependency>

            <!-- Logging Dependencies -->

            <dependency>

                <groupId>org.slf4j</groupId>

                <artifactId>slf4j-api</artifactId>

                <version>1.5.11</version>

                <scope>provided</scope>

            </dependency>

           

<!-- https://mvnrepository.com/artifact/org.apache.sling/org.apache.sling.api -->

<dependency>

    <groupId>org.apache.sling</groupId>

    <artifactId>org.apache.sling.api</artifactId>

    <version>2.16.4</version>

    <scope>provided</scope>

</dependency>

            <dependency>

                <groupId>org.apache.sling</groupId>

                <artifactId>org.apache.sling.models.api</artifactId>

                <version>1.0.0</version> 

                <scope>provided</scope>

            </dependency>

            <!-- Servlet API -->

<dependency>

    <groupId>javax.servlet</groupId>

    <artifactId>servlet-api</artifactId>

    <version>3.0-alpha-1</version>

    <scope>provided</scope>

</dependency>

           

           <!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api -->

<dependency>

    <groupId>javax.servlet.jsp</groupId>

    <artifactId>javax.servlet.jsp-api</artifactId>

    <version>2.3.1</version>

    <scope>provided</scope>

</dependency>

            <!-- JCR -->

            <dependency>

                <groupId>javax.jcr</groupId>

                <artifactId>jcr</artifactId>

                <version>2.0</version>

                <scope>provided</scope>

            </dependency>

            <!-- Taglibs -->

           

            <!-- Testing -->

            <dependency>

                <groupId>junit</groupId>

                <artifactId>junit</artifactId>

                <version>4.12</version>

                <scope>test</scope>

            </dependency>

            <dependency>

                <groupId>org.slf4j</groupId>

                <artifactId>slf4j-simple</artifactId>

                <version>1.7.25</version>

                <scope>test</scope>

            </dependency>

            <!-- https://mvnrepository.com/artifact/org.mockito/mockito-all -->

<dependency>

                <groupId>org.mockito</groupId>

                <artifactId>mockito-core</artifactId>

                <version>2.7.22</version>

                <scope>test</scope>

            </dependency>

            <dependency>

                <groupId>junit-addons</groupId>

                <artifactId>junit-addons</artifactId>

                <version>1.4</version>

                <scope>test</scope>

            </dependency>

            <!-- https://mvnrepository.com/artifact/org.apache.felix/org.apache.felix.scr.annotations -->

<dependency>

    <groupId>org.apache.felix</groupId>

    <artifactId>org.apache.felix.scr.annotations</artifactId>

    <version>1.9.8</version>

</dependency>

<!-- https://mvnrepository.com/artifact/com.googlecode.json-simple/json-simple -->

<dependency>

    <groupId>com.googlecode.json-simple</groupId>

    <artifactId>json-simple</artifactId>

    <version>1.1</version>

</dependency>

<dependency>

      <groupId>com.adobe.aem</groupId>

      <artifactId>uber-jar</artifactId>

      <version>6.3.1</version>

      <classifier>obfuscated-apis</classifier>

      <scope>provided</scope>

</dependency>

           <dependency> 

               <groupId>org.apache.geronimo.specs</groupId>

               <artifactId>geronimo-atinject_1.0_spec</artifactId>

               <version>1.0</version>

               <scope>provided</scope>

           </dependency>            

        </dependencies>

      

    </dependencyManagement>

1 Accepted Solution

Avatar

Correct answer by
Level 10

I See your problem - you are not referencing the correct version in the parent POM. As specified in the article - you need to follow this:

Add the following POM dependency to the POM file located at C:\AdobeCQ\wsHTL63. See reference to the version below.

<dependency>

               <groupId>com.adobe.aem</groupId>

               <artifactId>uber-jar</artifactId>

               <version>6.3.0</version>

               <!-- for AEM6.1 use this version     : <version>6.1.0</version> -->

               <!-- for AEM6.1 SP1 use this version : <version>6.1.0-SP1-B0001</version> -->

               <!-- for AEM6.1 SP2 use this version : <version>6.1.0-SP2</version> -->

               <!-- for AEM6.2 use this version     : <version>6.2.0</version> -->

               <classifier>obfuscated-apis</classifier>

               <scope>provided</scope>

           </dependency>

             

           <dependency>

               <groupId>org.apache.geronimo.specs</groupId>

               <artifactId>geronimo-atinject_1.0_spec</artifactId>

               <version>1.0</version>

               <scope>provided</scope>

           </dependency>

Make sure you follow all of the POM dependencies in the article. Once you do - you will see your bundle go into ACTIVE state:

OSGi.png

View solution in original post

8 Replies

Avatar

Level 2

Hi,

I had some progress here.

I notice that if I comment some dependencies from com.adobe.acs I don't have the sightly dependency error anymore. Dependencies commented:

<!-- <dependency>

                            <groupId>com.adobe.acs</groupId>

                            <artifactId>checkstyle-osgi-checks</artifactId>

                            <version>0.0.3</version>

                        </dependency>

                        <dependency>

                            <groupId>com.adobe.acs</groupId>

                            <artifactId>coding-standards</artifactId>

                            <version>0.0.1</version>

                        </dependency> -->

But this service that uses WCMUsePojo does not appear on my bundles, neihter in console/components. It is not being created. What can I do on this case?

My class:

public class ContingencyAccess extends WCMUsePojo {

@Reference

ResourceResolverFactory resourceResolverFactory;

@Override

public void activate() throws Exception {

   

    final String ERRORMESSAGE = "Error: ";

    final String PATH = "Error: ";

   

    Session session;

   

    //public static final Logger LOGGER = LoggerFactory.getLogger(ContingencyAccessImpl.class);

   

    Map<String, Object> param = new HashMap<String, Object>();

        param.put(ResourceResolverFactory.SUBSERVICE, "contService");

        ResourceResolver resourceResolver = null;

  

    try {

    if(resourceResolverFactory != null){

        resourceResolver = resourceResolverFactory.getServiceResourceResolver(param);

        session = resourceResolver.adaptTo(Session.class);

      

        Page page = resourceResolver.resolve("/").adaptTo(Page.class);

      

        Iterator<Page> contingencyIterator = page.listChildren();

      

        while (contingencyIterator.hasNext() ){

        Page contingencyPage = contingencyIterator.next().adaptTo(Page.class);

        contingencyPage.getTitle().toString();

        System.out.println(contingencyPage.getTitle().toString());

        }

    }

    }catch(Exception e) {

    System.out.println(e.getMessage());

    }

  

    }

}

Avatar

Level 9

You can always use dependency finder in AEM to check for the exact dependency

http://localhost:4502/system/console/depfinder

Did you try adding this:

<dependency>

<groupId>com.adobe.cq.sightly</groupId>

<artifactId>cq-wcm-sightly-extension</artifactId>

<version>1.3.8</version>

<scope>provided</scope>

</dependency>

Avatar

Level 10

Hi,

Please have a look at this HELPX community article which uses WCMUsePOJO with Uber Jar in AEM 6.3

Creating an Adobe Experience Manager 6.3 HTL component that uses the WCMUsePojo API

Thanks,

Ratna Kumar.

Avatar

Level 2

Hi Hemant,

this dependency is not currently available on repo public anymore.

Hi Kumar, I have been following a lot of articles for all week and I always end up on the same, I am using the uber-jar, that has WCMUsePojo class on it, I don't know why it not using the class on uber-jar.

com.adobe.cq.sightly,version=[2.2,3) -- Cannot be resolved

Avatar

Level 10

As Ratna points out - follow that article - it works and been tested!

Avatar

Correct answer by
Level 10

I See your problem - you are not referencing the correct version in the parent POM. As specified in the article - you need to follow this:

Add the following POM dependency to the POM file located at C:\AdobeCQ\wsHTL63. See reference to the version below.

<dependency>

               <groupId>com.adobe.aem</groupId>

               <artifactId>uber-jar</artifactId>

               <version>6.3.0</version>

               <!-- for AEM6.1 use this version     : <version>6.1.0</version> -->

               <!-- for AEM6.1 SP1 use this version : <version>6.1.0-SP1-B0001</version> -->

               <!-- for AEM6.1 SP2 use this version : <version>6.1.0-SP2</version> -->

               <!-- for AEM6.2 use this version     : <version>6.2.0</version> -->

               <classifier>obfuscated-apis</classifier>

               <scope>provided</scope>

           </dependency>

             

           <dependency>

               <groupId>org.apache.geronimo.specs</groupId>

               <artifactId>geronimo-atinject_1.0_spec</artifactId>

               <version>1.0</version>

               <scope>provided</scope>

           </dependency>

Make sure you follow all of the POM dependencies in the article. Once you do - you will see your bundle go into ACTIVE state:

OSGi.png

Avatar

Level 4

Hi,

Can you also tell me right version of aem-uber for aem version 6.3.2.2?

Also i read somewhere that there is some known issue and this dependency needs to be specified in Core pom also. Is it true?

when i add <classifier>Obfuscated-api</clasifier>, it works fine. But without this it says missing artifact aem-uber-6.3.2.2.  What is it’s (classifier ) Use?