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.