On 20/12/2011 11:46, S B wrote:
> Code Sample that fails with exception(I am invoking reload() from jconsole
> ):
> 
> class MBeanImpl implements MBeanInterface{
> 
>          public MBeanImpl{
>             // code to register this bean.
>          }
> 
> 
>   @Override
>     public void reload() {
> 
>         DBManager.loadFromDB();
> 
>     }
> }
> 
> 
> class DBManager{
> 
>             public static void loadFromDB(){
> 
>                  InitialContext initContext = new
> InitialContext();                         // here it fails with exception
> avax.naming.NoInitialContextException: Cannot instantiate class:
> org.apache.naming.java.javaURLContextFactory [Root
> 
> // exception is java.lang.ClassNotFoundException:
> org.apache.naming.java.javaURLContextFactory]
>                 Context context = (Context)
> initContext.lookup("java:comp/env");
>                 logger.info("context found " + context);
>                 BasicDataSource ds = (BasicDataSource)
> context.lookup("jdbc/" + dataSourceName);
>                ...............
>                ...............
>             }
> 
> }
> 
> 
> ---------------------------------------------
> 
> Code Sample that works:
> 
> class MBeanImpl implements MBeanInterface{
>           private Context envContext = null;
> 
>          public MBeanImpl{
>            InitialContext initialContext = new InitialContext();
>             envContext = (Context) initialContext.lookup("java:/comp/env");
>             // code to register this bean.
>          }
> 
> 
>   @Override
>     public void reload() {
> 
>         DBManager.loadFromDB(envContext);     // passed context object
> obtained in constructor
> 
>     }
> }
> 
> 
> class DBManager{
> 
>             public static void loadFromDB(Context context){
> 
>                  BasicDataSource ds = (BasicDataSource)
> context.lookup("jdbc/" + dataSourceName);  // works fine as I am not
> creating new InitialContext here.
>                ...............
>                ...............
>             }
> 
> }

Where does the MBeanImpl code run?  In a ServletContextListener, or
somewhere else?


p


> On Tue, Dec 20, 2011 at 4:59 PM, S B <sbl...@gmail.com> wrote:
> 
>> Hi,
>> I am using :
>>
>> Server version: Apache Tomcat/6.0.32
>> OS Name:        Mac OS X
>> OS Version:     10.6.8
>> Architecture:   x86_64
>> JVM Version:    1.6.0_29-b11-402-10M3527
>>
>> Thanks,
>> Ravi
>>
>>
>> On Tue, Dec 20, 2011 at 4:52 PM, Pid * <p...@pidster.com> wrote:
>>
>>> On 20 Dec 2011, at 11:02, S B <sbl...@gmail.com> wrote:
>>>
>>>> Hi,
>>>>
>>>> I created and deployed an MBean in my tomcat. It uses datasource to
>>> connect
>>>> to DB.
>>>
>>> Which version of Java? Tomcat?
>>>
>>>
>>>> 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).
>>>
>>> It depends on where you run the code. You haven't told us this.
>>>
>>> Can you post a code example.
>>>
>>>
>>> p
>>>
>>>
>>>> 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
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
>>> For additional commands, e-mail: users-h...@tomcat.apache.org
>>>
>>>
>>
> 


-- 

[key:62590808]

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to