Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Programmatically determining JNDI root context / ear name in JBoss 5.1

The default jndi context in JBoss 5.1 for an EJB is "earname/ejbname/local". In some instances where injection is not available I need to manually do a jndi lookup, however if my ejb jar file is packaged in different EAR's I'd like to have a portable way to maintain a look up helper class.

I know a method to do this exists as I've seen it before but can't find it now. I'd like to programmatically find the current application name or ear name.

Any ideas?

like image 335
Jeremy Avatar asked Nov 04 '10 20:11

Jeremy


2 Answers

Found through trial & error for jboss 6.1:

    InitialContext ic = new InitialContext();
    String moduleName = (String) ic.lookup("java:module/ModuleName");
    String appName = (String) ic.lookup("java:app/AppName");
like image 106
virtimus Avatar answered Nov 09 '22 21:11

virtimus


I know a method to do this exists as I've seen it before but can't find it now. I'd like to programmatically find the current application name or ear name.

I'm not aware of any obvious way to do that (not saying it's impossible, although I think the application name or ear name are more a "deployer" role concern) and my suggestion would be to either:

  • override the default JNDI names using a jboss.xml ~or~
  • read a properties file (and have your build system generate it) from your service locator

See also

  • Get ear name
like image 43
Pascal Thivent Avatar answered Nov 09 '22 19:11

Pascal Thivent