geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Łukasz Budnik" <lukasz.bud...@gmail.com>
Subject Re: JNDI Context Lookup Help
Date Tue, 18 Nov 2008 08:02:48 GMT
Hi Mark,

I had similar problems with Geronimo 2.1.

You can check out my simple method for traversing JNDI:

private void traverse(Context ctx, String path) throws NamingException {
 // lists all contents of current context
 NamingEnumeration<Binding> ne = ctx.listBindings("");
 while (ne.hasMore()) {
  Binding b = ne.next();
  String name = path + "/" + b.getName();
  // if current object is a context, traverse it
  if (b.getObject() instanceof Context) {
   traverse((Context) b.getObject(), name);
  }
  // otherwise print out object's name and its class
  else {
   logger.debug(name + " ==> " + b.getClassName());
  }
 }
}

invoke it like this:
Context c = new InitialContext();
traverse(c, "java:comp/env");

You can read more here:
http://jee-bpel-soa.blogspot.com/2008/09/traversing-jndi-directory.html

hope it helps :)

best regards
Łukasz

2008/11/17 Mark Aufdencamp <mark@aufdencamp.com>:
> Hi All,
>
> It's been a while since I had to ask for help from the list, but I hit a
> snag migrating an application from G-1.1.1 to G-2.1.3.  Specifically,
> I'm having a problem with a JNDI context lookup inside a
> ServletContextListener.  I presume this is a problem with the move to a
> global JNDI namespace in G-1.2 and forward.  I have had the same result
> in 1.2-beta and 2.1.3.  The Documentation and Google have not helped me
> here.
>
> I'm looking up an <env-entry> defined in the web.xml:
>
> <env-entry>
>   <env-entry-name>web/ContentLocation</env-entry-name>
>   <env-entry-type>java.lang.String</env-entry-type>
>   <env-entry-value>/SomeDirectoryHeirarchyName/</env-entry-value>
> </env-entry>
>
>
> Access code as follows:
>
> String contentLocation = null;
> String contentLocationJNDIName = "java:/comp/env/web/ContentLocation";
>
> Context ctx = null;
> boolean initialContextSuccess = false;
> try {
>  ctx = new InitialContext();
>  initialContextSuccess = true;
> } catch (NamingException namingException){
>  namingException.printStackTrace();
> }
>
> if(initialContextSuccess){
>  try{
>    contentLocation = (String) ctx.lookup(contentLocationJNDIName);
>  } catch(NamingException namingException){
>     namingException.printStackTrace();
>  }
> } else{
>  // Error Handling
> }
>
>
> The ctx.lookup() throws a javax.naming.NotContextException:
> comp/env/web/ContentLocation.
>
> Do I need to define Properties for the InitialContext Factory, add
> something to my geronimo-web.xml plan, or utilize a different JNDI name?
>
> Thanks for your help,
>
> Mark Aufdencamp
> Mark@Aufdencamp.com
>
>
>
>
>
>
>
>
Mime
View raw message