AEM Spark: Install/Stop/Start CRXDE Lite in AEM 6

05287_AEM-Spark_Install_Stop_Start-CRXDE-Lite-in-AEM-6

Should you be running CRXDE Lite or not? I think we all agree that the IDEAL situation is to have this disabled. However, there are times where you just really feel like you need to debug that one problem by looking something up in the CRXDE Lite. Although Axis41’s Managed Services team never debugs in production, we will occasionally download an Adobe Experience Manager instance locally to do some debugging. In such cases, we figure why not turn CRXDE Lite back on? It will likely save the Systems Engineer some time, and any change has to be deployed through the immutable infrastructure process anyway.

When looking at your error.log, if you try to load the CRXDE Lite while it is disabled, you will see an error message that looks something like this:
org.apache.sling.engine.impl.SlingRequestProcessorImpl service: Resource /crx/server/crx.default/jcr:root/.1.json not found

If this is a new instance 6.1 or later, and it was initialized with the nosamplecontent runmode, you must first create the missing SlingDavExServlet component:
curl -u admin:admin -F “jcr:primaryType=sling:OsgiConfig” -F “alias=/crx/server” -F “dav.create-absolute-uri=true” -F “[email protected]=Boolean” http://localhost:4502/apps/system/config/org.apache.sling.jcr.davex.impl.servlets.SlingDavExServlet

Now we may need to start the bundle. In any 6.x instance with the SlingDavExServlet component created, to START CRXDE Lite, use:
curl –user “admin:admin” -X POST ‘http://localhost:4502/system/console/bundles/org.apache.sling.jcr.davex’ –data ‘action=start’

We’re looking here for a JSON response that shows the bundle as started:
{“fragment”:false,”stateRaw”:32}

On the off chance that someone started this in your production instance, it’s just as easy to stop it. In any 6.x instance with the SlingDavExServlet component created, to STOP CRXDE Lite, use:
curl –user “admin:admin” -X POST ‘http://localhost:4503/system/console/bundles/org.apache.sling.jcr.davex’ –data ‘action=stop’

And confirm that the JSON response shows the bundle as stopped:
{“fragment”:false,”stateRaw”:4}

If you have a better solution to this problem that you’d like to share, contact us at in[email protected]