Calling XPages Community to help with Advice on Debugging Xpages Apps - Johno's Workbench

Hi everyone. There seems to be a lot of questions and frustration from many including myself on how best to debug one’s XPages Application.

I have decided to investigate online all possible debugging options that currently exist. As I find them I will list them in this Blog Post. By the end of this weekend I will be finalizing all collected data, and will create a Video Tutorial explaining and demonstrating the preferred methods of debugging. I will also contribute this video to David Leedy for his NotesIn9 Series.

What I am asking from the Community is to please add your 2 cents worth, by commenting on this Blog Post. If you have a better way of debugging XPages apps, or if you have further advice to give on existing findings, please join in and voice your thoughts and opinions.

11 Comments

I use the standard Java debugging for my Java code in managed beans and static methods, and I use the firebug debugger for csjs. Logging is important too, but I generally speaking the Java Debugger finds most issues.

I am using the Debug Toolbar but that doesn’t really do debugging without me putting in all sorts of code to record everything that is happening. It is nice to be able to see the various scope variables.

I have used computed fields in different places on pages just to see what the variables are doing but again that isn’t a great answer either.

I have used OpenLog as well but, again, that isn’t a great option either.

I am still trying to learn to use try…catch blocks everywhere but I have not created a doLog function like Thomas has so they don’t do much of anything for me yet.

I agree with Niklas: real debugging can only be down using the Eclipse debugger from Java.

Since there isn’t a debugger for SSJS yet and I found it annoying to open the server console every time to view the results of print() statements, I created the XPage Debug Toolbar. It allows you to log messages to the toolbar instead of the server console (for SSJS and Java code) and shows the contents of the various scopes.