JWAD > FAQs
What is JWAD?
JWAD (pronounced "JAY-wad") stands for Java Web-App Debugger. It's a handy utility for displaying Java objects hidden in the various scopes of a web application (page, request, session, and application). It prints the key/values of attributes, parameters, cookies, headers, etc. in a user-friendly DTHML console.
Who is it intended for?
JWAD is intended for any developer building a Java web application. It's easy to install, simple to use, and greatly simplifies the debugging of JSPs.
Who wrote it and why?
JWAD was developed by Barney Marispini of Solarbox. While it was originally intended solely for personal use, it evolved into something worth sharing with the entire Java development community. JWAD is a must-have for every Java developer toolbox.
Is it actually free?
Yes, it is free for both personal and commercial use. The only catch is that it cannot be decompiled, reverse-engineered, repackaged, or sold for gain.
How do I use it?
Once installed, simply add the custom tag to your page. The JWAD DTHML console will appear exactly at the point of insertion. Once the page loads, select the scope and then the category.
Do I have to add the custom tag to every page I want to debug?
Yes, but you can avoid having to do that if you template your website. There are lots of excellent template frameworks (Tiles, Velocity, etc.) to choose from. Pick the one that best fits your needs (or roll your own) and then add the JWAD custom tag include to your main template page.
What are the minimum requirements?
JWAD requires at a minimum, Java SE 5 and Java EE 1.4. JWAD does not use EJBs; therefore, you do not need an application server. A simple JSP/Servlet container such as Tomcat or Resin will work fine; although, you can use an application server if you'd like (JBoss, WebLogic, WebSphere, etc.).
How do I install it?
See installation for details.
What exactly do the "jwad-server.war" and "jwad-client.jar" files do?
The "jwad-server.war" simply serves the images, styles, and scripts necessary to run the DTHML console. The reason it has to be deployed as a separate web-app is to simplify installation. Were it not so, JWAD-specific artifacts would be littered throughout your domain's web application. The intent was to be non-intrusive.

The "jwad-client.jar" contains all the Java code necessary to access the various objects in their respective scopes. It simply gets the objects, categorizes, and then prints them to the output stream.
How often do I need to check back for updates?
Never. The JWAD console automatically checks for updates and then notifies you of newer versions. It's entirely up to you as to whether you want to upgrade.
In two seconds or less, how does JWAD actually work?
Conceptually, JWAD is very simple. It checks every scope, groups the objects into categories, and then iterates their properties. The result is a DHTML console printed to the page.
Does it work with Struts and JavaServer Faces?
Yes, it works with both. For the most part, JWAD should work with any web framework.
Can I control the number and order of modules (scopes) displayed in the JWAD console?
As a matter of fact, you can! The optional "modules" attribute of the <jwad:debugger /> custom tag can be used to specify a comma-separated list of modules (scopes) in any order or number. Acceptable values include the following...
  • Page
  • Request
  • Session
  • Application
Do I have to add and remove JWAD every time I deploy to and from production?
No. JWAD can be toggled off and on directly from the "web.xml" deployment descriptor. Therefore, you never have to worry about removing the custom tag JWAD includes from any of your JSPs when migrating to and from production.
What new features are being considered for the next version of JWAD?
There are actually several new features being considered at the moment. User feedback will have a tremendous influence as to what direction JWAD takes.

Some ideas currently considered include...
  • The ability to search the various scopes for a specific object.
  • The ability to view additional deployment descriptor elements such as listeners, tag libraries, servlet init parameters, security information, etc.
  • A mechanism for displaying client-side attributes such as JavaScript/CSS/Flash support versions, browser configurations, viewable screen dimensions, etc.
Copyright ©2011, Solarbox - All Rights Reserved.