0
@Component
public class AddNode {
    @Reference
    static ResourceResolverFactory resolverFactory;
    static Session session;

    public static void main(String[] args) throws Exception { 


        ResourceResolver resourceResolver = resolverFactory.getServiceResourceResolver(null);

        session = resourceResolver.adaptTo(Session.class);        
          Node root = session.getRootNode(); 

          Node adobe = root.addNode("ProgramNode"); 
          Node day = adobe.addNode("subnode"); 
          day.setProperty("jcr:title", "programNode"); 

          Node node = root.getNode("ProgramNode/subnode"); 
          System.out.println(node.getPath()); 
          System.out.println(node.getProperty("jcr:title").getString()); 
          session.save(); 
          session.logout();


        }

}

here resolverFactory.getServiceResourceResolver(null); i need to pass any parameter at null.please give some example to get access of repository.

Kumar Ramela
  • 11
  • 1
  • 6
  • What are you trying to achieve? Do you want to create a page, an asset etc.? Because you are using more or less the lowest possible API to create content in JCR. Usually, you would not use the JCR API to do this but the Sling or if possible the AEM APIs. – Jens Jan 17 '19 at 12:29
  • i am new to AEM. trying to create node programatically throung java code not in crxde. – Kumar Ramela Jan 17 '19 at 12:39

2 Answers2

1

We should use System Users to access repository when accessing via Factory. You would need to

  1. Create system user, provide appropriate permissions
  2. Map bundle symbolic name to system user
  3. Use system user to get session via ResourceResolverFactory

    Map<String, Object> param = new HashMap<String, Object>();
    param.put(ResourceResolverFactory.SUBSERVICE, "<sub-service-name>");
    ResourceResolver resolver = null;         
    resolver = resolverFactory.getServiceResourceResolver(param);
    session = resolver.adaptTo(Session.class);
    

You can refer this helpx link article also to get idea about using Service Users to create session

Sandeep Kumar
  • 1,758
  • 1
  • 22
  • 39
0

Have a look at the documentation of ResourceResolverFactory.

https://sling.apache.org/apidocs/sling7/org/apache/sling/api/resource/ResourceResolverFactory.html