VRaptor já vem com um componente padrão que disponibiliza informações úteis sobre a configuração dele mesmo.
Só adiciona o componente no arquivo vraptor.xml:
<component>org.vraptor.util.StatsQuery</component>
A lógica se chama StatsQuery.read.logic.
Existe um exemplo StatsQuery/read.ok.jsp na aplicação mydvd que você pode baixar.
O exemplo listado aqui ajuda o iniciante (e o avançado) programar:
<div id="blue-box" style="width: 700px;"> This feature is here only for demonstration. You should turn it off while live.<br/> <br/> <table style="width: 100%; border-style: solid; border-width: 1pt; border: solid 1pt; border-collapse: collapse;"> <tr> <td>Name</td> <td>Component class</td> <td>Interceptors</td> <td>Parameter</td> <td>Logics</td> </tr> <c:forEach var="component" items="${components}"> <tr> <td>${component.name}</td> <td>${component.componentClass.simpleName}</td> <td> <c:forEach var="i" items="${component.interceptors}"> - ${i.interceptorClass.simpleName}<br/> </c:forEach> </td> <td> <c:forEach var="p" items="${component.readParameters}"> - ${p.key}<br/> </c:forEach> </td> <td> <c:forEach var="logic" items="${component.logics}"> - ${logic.name} : ${logic.metadata.name}<br/> </c:forEach> </td> </tr> </c:forEach> </table> <br/><br/> <table style="width: 100%; border-style: solid; border-width: 1pt; border: solid 1pt; border-collapse: collapse;"> <tr> <td>Url</td> <td>Callback</td> </tr> <c:forEach var="component" items="${components}"> <c:forEach var="logic" items="${component.logics}"> <tr> <td>${component.name}.${logic.name}.logic</td> <td>${component.componentClass.name}.${logic.metadata.name}</td> </tr> </c:forEach> </c:forEach> </table> </div>
O componente StatsQuery deve ser desabilitado no sistema real (não registre o componente): ele pode criar problemas de segurança e o usuário final talvez possa ver os parâmetros da requisição.