From AEM 6.1 you cannot use "admin" to access the nodes. I have detailed a solution here ResourceResolverFactory getServiceResourceResolver throws Exception in AEM 6.1
And to here's what i have done to Read and Write data to JCR.
public class InteractHelper {
@Reference
private ResourceResolverFactory resolverFactory;
private ResourceResolver resourceResolver;
@Activate
private void activate(ComponentContext context) {
...
Map<String, Object> param = new HashMap<String, Object>();
// AEM_SUBSERVICE is the service name that you need to define from the OSGI
param.put(ResourceResolverFactory.SUBSERVICE, AEM_SUBSERVICE);
try {
resourceResolver = resolverFactory.getServiceResourceResolver(param);
...
}
/** Write data to a node */
public void saveToRepository(ResourceResolver resourceResolver, String dataString) throws Exception {
Session session = resourceResolver.adaptTo(Session.class);
Node userNode;
Node userJcrContentNode;
String nodePath="";
if (session!=null) {
Node usersRootNode = session.getNode(USERS_ROOT_FOLDER);
userNode = session.getNode(usersRootNode.getPath() + "/" + "suren");
if (userNode!=null) {
nodePath = userNode.getPath();
}
if (!session.itemExists(nodePath)) {
userNode = usersRootNode.addNode("suren", "cq:Page");
userJcrContentNode = userNode.addNode("jcr:content", "cq:PageContent");
}
if(!session.itemExists(nodePath+"/jcr:content")){
userJcrContentNode = userNode.addNode("jcr:content", "cq:PageContent");
}
userJcrContentNode = userNode.getNode("jcr:content");
userJcrContentNode.setProperty("abc-shoppingcart",dataString);
// Save the session changes and log out
session.save();
session.logout();
}
}
/** Read data from Node */
public void readFromRepository(ResourceResolver resourceResolver, String encodedShoppingCartString) throws Exception {
Session session = resourceResolver.adaptTo(Session.class);
if (session!=null) {
Node usersRootNode = session.getNode(USERS_ROOT_FOLDER);
Node userNode = usersRootNode.addNode("suren", "cq:Page");
Node userJcrContentNode = userNode.addNode("jcr:content", "cq:PageContent");
userJcrContentNode = userNode.getNode("jcr:content");
userJcrContentNode.setProperty("abc-shoppingcart",dataString);
// Save the session changes and log out
session.save();
session.logout();
}
}