• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Liutauras Vilda
  • Jeanne Boyarsky
  • Devaka Cooray
  • Paul Clapham
Sheriffs:
  • Tim Cooke
  • Knute Snortum
  • Bear Bibeault
Saloon Keepers:
  • Ron McLeod
  • Tim Moores
  • Stephan van Hulst
  • Piet Souris
  • Ganesh Patekar
Bartenders:
  • Frits Walraven
  • Carey Brown
  • Tim Holloway

MBean InitialContext() Tomcat query- what is the relation

 
Greenhorn
Posts: 17
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,

I created and deployed an MBean in my tomcat. It uses datasource to connect to DB.
My questions is:

When I create InitialContext() inside MBean's constructor and pass the envContext to DBManager class to lookup datasource it works fine. However when I create InitialContext() in DBManager class, it fails.

Is it necessary to create InitialContext() during loading of MBean (either in ContextListener class or inside MBean constructor).

When I did new InitialContext() in my DBManager class which is called from hello method of MBean it failed with below exception:

avax.naming.NoInitialContextException: Cannot instantiate class: org.apache.naming.java.javaURLContextFactory [Root exception is java.lang.ClassNotFoundException: org.apache.naming.java.javaURLContextFactory]

I invoked hello method of MBean from JConsole.


Please let me know is it Tomcat specific? or same behavior is seen across all app servers. Also, What difference does it make if I create InitialContext inside MBean's constructor or in some other class at a later point of time.

Thanks
Ravi
 
Bartender
Posts: 20841
125
Android Eclipse IDE Tomcat Server Redhat Java Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
MBeans are not intended to contain application logic, so I'm not surprised that their classpath doesn't include all the resource you want.

MBeans are expected to be paired with actual functional beans, and that is where things like database logic and JNDI referencing should be happening.

MBeans are the interface for monitoring and control of the functional beans.

BTW, HOW did you manage to create 4 copies of your question in under 2 minutes? Is there a bug in out software?
 
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!