How to debug JSPs in an AEM custom errorhandler?

jayv25585659

11-08-2019

setup:

1. a local instance of author (running on 4502 and debugging port on 8000) and publisher (running on 4503 and debugging port on 8002)

2. used this guide (Debug an AEM app using eclipse ) to setup 2 debug configurations for my author and publisher local instances

3. Somebody (a person before me) created a custom version of /libs/sling/servlet/errorhandler and placed it in /apps/sling/servlet/errorhandler

My question is on how to do debug the custom JSP page. I placed a breakpoint in the JSP on IntelliJ and it's not stopping on the breakpoint. I know the debugging works as the custom JSP uses a Java class (consisting of 10 lines only) and if I placed a breakpoint somewhere in the class, it stops at that point.

I am looking at this page (Customizing Pages shown by the Error Handler ) and there are no tips on how to debug the custom code.

Thanks!

Accepted Solutions (1)

Accepted Solutions (1)

Answers (4)

Answers (4)

Andrew_Khoury

Employee

12-08-2019

To find the complied JSP files for debugging you can do the following:

1. Go to http://host:port/system/console/bundles/org.apache.sling.commons.fsclassloader

2. Get the Id bundle

3. On the file system go to crx-quickstart/launchpad/felix/bundleX/data/classes where X is the Id value from step 2.

4. You can add that folder to the source code debug search path of your Eclipse or IntelliJ project for debugging of the jsp.java files. I am assuming here that we are debugging on a local AEM instance.  Otherwise you would have to download the files from that folder to your machine for debugging.

This isn't quite as easy as debugging the actual JSP file.  However, it is useful as you can figure out which line of the jsp.java file maps back to in the non-compiled jsp file.

jayv25585659

20-08-2019

I tried your suggestion of using log4j,

I modified the first 8 lines of my code to reflect the contents of the SO.com discussion

As you can see, I really didn't do anything other than importing a class and declaring a new variable. The code successfully compiled and when I reloaded my page, I now keep on getting:

Previously I was getting our custom 404 HTML page.

jayv25585659

20-08-2019

using your instructions, I found the bundle ID to be 499. I then loaded the folder inside IntelliJ and then created a new debug configuration. I tried debugging the code and I keep on getting "Source code does not match byte code".