This fix is now added to 4.0.6 kernel. Now the default IntialContextFactory
is set to CarbonJavaURLContextFactory. Can we please check it with latest
AS (carbon 4.0.6) build and see? I also did my local testing.

Thanks,
Kishanthan.

On Wed, Jan 2, 2013 at 2:57 PM, Harsha Thirimanna <[email protected]> wrote:

> Hi,
>
> I checked this out. After patching  to the kernal , admin and tenents can
> access their own Data Sources through the web application.
> Another point that I found is now without having the
> 'java.naming.factory.initial' property  ,it  worked.
>
>
> protected void doGet(HttpServletRequest httpServletRequest,
>                          HttpServletResponse httpServletResponse)
> throws ServletException, IOException {
>         try {
>
>             Context initContext = new InitialContext();
>
>             Object result = initContext.lookup("jdbc/myjndiDatasource");
>             System.out.println("Result ==> " + result);
>
>         } catch (NamingException e) {
>             e.printStackTrace();  //To change body of catch statement
> use File | Settings | File Templates.
>         }
>
>         httpServletResponse.getOutputStream().print("testString");
>     }
>
>
> thanks
> harsha thirimanna
>
>
>
>>
>>
>>
>> On Wed, Jan 2, 2013 at 10:30 AM, Manjula Rathnayake <[email protected]>wrote:
>>
>>>
>>>
>>> ---------- Forwarded message ----------
>>> From: Amila Suriarachchi <[email protected]>
>>> Date: Sat, Dec 29, 2012 at 7:49 AM
>>> Subject: [Dev] Accessing Carbon data sources from web applications
>>> To: WSO2 Developers' List <[email protected]>, Dimuthu Leelarathne <
>>> [email protected]>
>>>
>>>
>>> hi,
>>>
>>> Currently it is not possible to access the carbon data sources created
>>> from the Admin console from the web applications. The reason for this
>>> the current configuration context factory class (i.e.
>>> org.apache.naming.java.javaURLContextFactory) checks for the class
>>> loaders.
>>>
>>> It has following method.
>>>
>>> public Context getInitialContext(Hashtable environment)
>>>    97           throws NamingException {
>>>    98           if (ContextBindings.isThreadBound() ||
>>>    99               (ContextBindings.isClassLoaderBound())) {
>>>   100               // Redirect the request to the bound initial context
>>>   101               return new SelectorContext(environment, true);
>>>   102           } else {
>>>   103               // If the thread is not bound, return a shared
>>> writable context
>>>   104               if (initialContext == null)
>>>   105                   initialContext = new NamingContext(environment,
>>> MAIN);
>>>   106               return initialContext;
>>>   107           }
>>>   108       }
>>>
>>> We can avoid this by creating a new Context Factory by extending the
>>> given context factory. Do the following steps.
>>>
>>> 1. Apply the patch to org.wso2.carbon.tomcat bundle at the kernal.
>>> This adds the new over-ridden class. and copy the jar file.
>>>
>>>
>>> 2. change the carbon.xml jndi context factory to
>>>
>>> <DefaultInitialContextFactory>org.wso2.carbon.tomcat.jndi.CarbonJavaURLContextFactory</DefaultInitialContextFactory>
>>>
>>> 3. Create a data source from the Admin console ui.
>>>
>>> 4. Access that within a servelet as follows.
>>>
>>> protected void doGet(HttpServletRequest httpServletRequest,
>>>                          HttpServletResponse httpServletResponse)
>>> throws ServletException, IOException {
>>>         try {
>>>             Hashtable hashtable = new Hashtable();
>>>             hashtable.put("java.naming.factory.initial",
>>> "org.wso2.carbon.tomcat.jndi.CarbonJavaURLContextFactory");
>>>             Context initContext = new InitialContext(hashtable);
>>>             Object result = initContext.lookup("jdbc/myjndiDatasource");
>>>             System.out.println("Result ==> " + result);
>>>
>>>         } catch (NamingException e) {
>>>             e.printStackTrace();  //To change body of catch statement
>>> use File | Settings | File Templates.
>>>         }
>>>
>>>         httpServletResponse.getOutputStream().print("testString");
>>>     }
>>>
>>> @Dimuthu is this fix your issue at AppFactory?
>>>
>>> thanks,
>>> Amila.
>>>
>>> --
>>> *Amila Suriarachchi*
>>>
>>> Software Architect
>>> WSO2 Inc. ; http://wso2.com
>>> lean . enterprise . middleware
>>>
>>> phone : +94 71 3082805
>>>
>>> _______________________________________________
>>> Dev mailing list
>>> [email protected]
>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>
>>>
>>>
>>>
>>> --
>>> Manjula Rathnayaka
>>> Software Engineer
>>> WSO2, Inc.
>>> Mobile:+94 77 743 1987
>>>
>>
>>
>
> _______________________________________________
> Dev mailing list
> [email protected]
> http://wso2.org/cgi-bin/mailman/listinfo/dev
>
>


-- 
*Kishanthan Thangarajah*
Software Engineer,
Development Technologies Team,
WSO2, Inc.
lean.enterprise.middleware

Mobile - +94773426635
Blog - *http://kishanthan.wordpress.com*
Twitter - *http://twitter.com/kishanthan*
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to