How to debug JSPs in an AEM custom errorhandler?

Avatar

Avatar

jayv25585659

Avatar

jayv25585659

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)

Avatar

Avatar

Gaurav-Behl

MVP

Total Posts

1.1K

Likes

226

Correct Answer

281

Avatar

Gaurav-Behl

MVP

Total Posts

1.1K

Likes

226

Correct Answer

281
Gaurav-Behl
MVP

12-08-2019

You can write log statements or Sysouts or even add breakpoints like you'd in a normal java class

HTH

Answers (4)

Answers (4)

Avatar

Avatar

Andrew_Khoury

Employee

Avatar

Andrew_Khoury

Employee

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.

Avatar

Avatar

Arun_Patidar

MVP

Total Posts

2.9K

Likes

1.0K

Correct Answer

831

Avatar

Arun_Patidar

MVP

Total Posts

2.9K

Likes

1.0K

Correct Answer

831
Arun_Patidar
MVP

12-08-2019

Avatar

Avatar

jayv25585659

Avatar

jayv25585659

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.

Avatar

Avatar

jayv25585659

Avatar

jayv25585659

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".