-Tim
--start of page-- <%@ page import="java.net.InetAddress" import="java.util.Enumeration" %>
<% Cookie[] cookies = request.getCookies(); String reqSessionId = request.getRequestedSessionId(); %> <STYLE> <!-- TABLE{ text-align : left; vertical-align: top; } TH,TD,P, PRE { font-size : 11px } --> </STYLE>
<font face="Helvetica">
<h1>
<font color=#DB1260>
Environment Information
</font>
</h1>
<PRE>
javax.servlet.include.request_uri: <%=request.getAttribute("javax.servlet.include.request_uri")%>
</PRE>
<p>
<%
out.println( "<TABLE BORDER=0>\n" );
out.println( "<TR><TH>Server:</TD><TD>"+request.getServerName()+"</TD></TR>\n");
try {
out.println( "<TR><TH>SERVER::getHostName():</TD><TD>"+InetAddress.getLocalHost().getHostName()+"</TD></TR>\n");
} catch(Throwable e){
out.println( "<TR><TH>SERVER::getHostName():</TD><TD>"+e+"</TD></TR>\n");
}
try {
out.println( "<TR><TH>SERVER::getHostAddress():</TD><TD>"+InetAddress.getLocalHost().getHostAddress()+"</TD></TR>\n");
} catch(Throwable e){
out.println( "<TR><TH>SERVER::getHostAddress():</TD><TD>"+e+"</TD></TR>\n");
}
out.println( "<TR><TH>Client Remote Addr:</TD><TD>"+request.getRemoteHost()+"</TD></TR>\n");
out.println( "<TR><TH>Client Remote Host:</TD><TD>"+request.getRemoteAddr()+"</TD></TR>\n");
out.println( "<TR><TH>Protocol</TD><TD>"+request.getProtocol()+"</TD></TR>\n");
out.println( "<TR><TH>SessionID:</TD><TD>"+reqSessionId+"</TD></TR>\n");
out.println( "<TR><TH>request.getRequestURI():</TD><TD>"+request.getRequestURI()+"</TD></TR>\n");
out.println( "<TR><TH>getQueryString:</TD><TD>"+request.getQueryString()+"</TD></TR>");
out.println( "<TR><TH>getAttributeNames:</TD><TD>"+request.getAttributeNames()+"</TD></TR>");
out.println( "<TR><TH>getParameterNames:</TD><TD>"+request.getParameterNames()+"</TD></TR>");
out.println( "<TR><TH>getContextPath:</TD><TD>"+request.getContextPath()+"</TD></TR>");
out.println( "<TR><TH>getPathInfo:</TD><TD>"+request.getPathInfo()+"</TD></TR>");
out.println( "<TR><TH>getRequestURI:</TD><TD>"+request.getRequestURI()+"</TD></TR>");
out.println( "<TR><TH>getServletPath:</TD><TD>"+request.getServletPath()+"</TD></TR>");
out.println( "<TR><TH>servletConfig.getServletName:</TD><TD>"+getServletConfig().getServletName()+"</TD></TR>");
for( int x = 0; cookies!=null && x < cookies.length; x++ ){ Cookie cookie = cookies[x]; out.println( "<TR><TH>Cookie:</TD><TD>" +cookie.getValue()+"</TD></TR>\n"); } out.println( "</TABLE>\n" );
out.println( "<H2>Headers</H2>" ); out.println( "<TABLE BORDER=0>\n" );
for (Enumeration e = request.getHeaderNames(); e!=null && e.hasMoreElements(); ) {
String key = (String)e.nextElement();
for (Enumeration ei = request.getHeaders(key); ei!=null && ei.hasMoreElements(); ) {
out.println( "<TR><TH>" + key + "</TD><TD>" + ei.nextElement() + "</TD></TR>\n");
}
}
out.println( "</TABLE>\n" );
%>
<HR>
<H2>Servlet Context</H2>
<%
ServletContext sc = this.getServletConfig().getServletContext();
for (Enumeration e = sc.getAttributeNames(); e!=null && e.hasMoreElements(); ) {
String key = (String)e.nextElement(); %>
<%=key%>: <%=sc.getAttribute(key)%><%
}
%>
<HR>
<H2>Session Object</H2>
<%
for (Enumeration e = session.getAttributeNames(); e!=null && e.hasMoreElements(); ) {
String key = (String)e.nextElement(); %>
<%=key%>: <%=session.getAttribute(key)%><%
}
%>
<HR>
<H2>Requests Object</H2>
<PRE><%
for (Enumeration e = request.getAttributeNames(); e!=null && e.hasMoreElements(); ) {
String key = (String)e.nextElement(); %>
<%=key%>: <%=request.getAttribute(key)%><%
}
%>
<%
if (request.getAttribute("thrown")!=null) {
Throwable e = (Throwable)request.getAttribute("thrown");
while (e!=null) {
if (e instanceof javax.servlet.ServletException ){
out.println("ROOT CAUSE:\n" + getStackTrace(((javax.servlet.ServletException)e).getRootCause()));
e = (((javax.servlet.ServletException)e).getRootCause());
} else if (e instanceof javax.servlet.jsp.JspException ){
out.println("ROOT CAUSE:\n" + getStackTrace(((javax.servlet.jsp.JspException)e).getRootCause()));
e = (((javax.servlet.jsp.JspException)e).getRootCause());
} else {
out.println("ROOT CAUSE:\n" + getStackTrace(e));
e=null;
}
}
}
%>
<%
StringBuffer s = new StringBuffer();
java.lang.reflect.Field[] f = request.getClass().getDeclaredFields(); java.lang.reflect.Method[] m = request.getClass().getMethods();
s.append("FIELDS:\n"); for( int i=0; i< f.length; i++ ) { try { s.append(f[i].getName() + "=" + f[i].get(request) + "\n"); } catch (IllegalAccessException mf) { // s.append("... Exception ..." ); } catch (Throwable mf) { s.append("... " + mf.toString() + " ...\n" ); } }
for( int i=0; i<m.length; i++ ) {
try {
//only get "get" or "is" methods ...
if ( m[i].getParameterTypes().length==0 &&
( m[i].getName().startsWith("is") ||
m[i].getName().startsWith("get") ||
m[i].getName().startsWith("siz"))
)
s.append(m[i].getName() + "=" + m[i].invoke(request, new Object[0]) + "\n");
} catch (IllegalAccessException mf) {
//s.append("... IllegalAccessException ..." );
// s.append(m[i].getName() + ":!! " + mf.toString() + " ...\n" );
} catch (Throwable mf) {
s.append(m[i].getName() + ":!! " + mf.toString() + " ...\n" );
}
}
out.println(s.toString());
%> </PRE>
<PRE> Classloader hiererarchy ... <% String indent = ""; ClassLoader cl = this.getClass().getClassLoader(); ClassLoader lcl = null; while (cl != null && lcl != cl) { lcl = cl; out.println(indent + cl.getClass().getName() + "[" + cl + "]"); indent += " "; cl = cl.getParent(); } %> </PRE>
</p> </font> <%! String getStackTrace(Throwable e) { try { java.io.StringWriter s = new java.io.StringWriter(); java.io.PrintWriter p = new java.io.PrintWriter(s); e.printStackTrace( p ); p.close(); s.close(); return s.toString(); } catch(Throwable q) { return "no stacktrace"; } }
%>
--End of page--
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]