User: starksm
Date: 01/06/09 17:19:33
Modified: src/main/org/jboss/test/web/servlets DebugServlet.java
Log:
Add dump of the java:comp/env context
Revision Changes Path
1.3 +75 -1 jbosstest/src/main/org/jboss/test/web/servlets/DebugServlet.java
Index: DebugServlet.java
===================================================================
RCS file:
/cvsroot/jboss/jbosstest/src/main/org/jboss/test/web/servlets/DebugServlet.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- DebugServlet.java 2001/06/01 14:08:49 1.2
+++ DebugServlet.java 2001/06/10 00:19:33 1.3
@@ -5,7 +5,13 @@
import java.net.URL;
import java.net.URLClassLoader;
import java.security.Principal;
+import javax.naming.Context;
import javax.naming.InitialContext;
+import javax.naming.LinkRef;
+import javax.naming.NamingEnumeration;
+import javax.naming.NamingException;
+import javax.naming.NameClassPair;
+import javax.naming.NameParser;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
@@ -14,7 +20,7 @@
/** A servlet that dumps out debugging information about its environment.
* @author [EMAIL PROTECTED]
- * @version $Revision: 1.2 $
+ * @version $Revision: 1.3 $
*/
public class DebugServlet extends HttpServlet
{
@@ -44,6 +50,8 @@
InitialContext iniCtx = new InitialContext();
super.log("InitialContext.env: "+iniCtx.getEnvironment());
out.println("InitialContext.env: "+iniCtx.getEnvironment());
+ out.println("</pre><h3>java:comp/env</h3><pre>");
+ showTree(" ", (Context) iniCtx.lookup("java:comp/env"), out);
}
catch(Exception e)
{
@@ -92,4 +100,70 @@
level ++;
}
}
+
+ private void showTree(String indent, Context ctx, PrintWriter out)
+ throws NamingException
+ {
+ ClassLoader loader = Thread.currentThread().getContextClassLoader();
+ NamingEnumeration enum = ctx.list("");
+ while( enum.hasMoreElements() )
+ {
+ NameClassPair ncp = (NameClassPair)enum.next();
+ String name = ncp.getName();
+ out.print(indent + " +- " + name);
+ boolean recursive = false;
+ boolean isLinkRef = false;
+ try
+ {
+ Class c = loader.loadClass(ncp.getClassName());
+ if( Context.class.isAssignableFrom(c) )
+ recursive = true;
+ if( LinkRef.class.isAssignableFrom(c) )
+ isLinkRef = true;
+ }
+ catch(ClassNotFoundException cnfe)
+ {
+ }
+
+ if( isLinkRef )
+ {
+ try
+ {
+ LinkRef link = (LinkRef) ctx.lookupLink(name);
+ out.print("[link -> ");
+ out.print(link.getLinkName());
+ out.print(']');
+ }
+ catch(Throwable e)
+ {
+ e.printStackTrace();
+ out.print("[invalid]");
+ }
+ }
+ out.println();
+
+ if( recursive )
+ {
+ try
+ {
+ Object value = ctx.lookup(name);
+ if( value instanceof Context )
+ {
+ Context subctx = (Context) value;
+ showTree(indent + " | ", subctx, out);
+ }
+ else
+ {
+ out.println(indent + " | NonContext: "+value);
+ }
+ }
+ catch(Throwable t)
+ {
+ out.println("Failed to lookup: "+name+",
errmsg="+t.getMessage());
+ }
+ }
+
+ }
+ }
+
}
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/jboss-development