Hi Kishanthan/ AS Team, Today App-factory team raised this issue again and they also need to have same requirement. (The capability of accessing resources( inside a wep-app) that registered with JNDI via carbon component using default InitialContext of carbon ). We need to discuss and come-up with a solution for this.
Regards, Dinusha. On Thu, May 31, 2012 at 3:51 PM, Kishanthan Thangarajah <kishant...@wso2.com > wrote: > > > On Wed, May 30, 2012 at 1:44 PM, Dinusha Senanayaka <dinu...@wso2.com>wrote: > >> Here, what we want is to use the same transaction-manager that has expose >> by the transaction-manager component inside the web-app. But by defining it >> as a resource in server.xml or context.xml , it register a new transaction >> manager to use in wep-app rather using it from transaction-manager >> component. So we loss the need of having transaction-manager carbon >> component. >> > > AFAIK, in previous releases, these resources (TransactionManager, etc) are > registered with tomcat via the context descriptor file > (CARBON_HOME/lib/tomcat/conf/context.xml). > > But according to the current implementation in trunk, we are registering > those resources to Carbon's InitialContext via a carbon component > (transaction-manager) and we want those resources to be accessible > everywhere including webapps also. This is the requirement. But as I said > earlier, this will not work as we can see that we are trying to access a > resource which is not registered with tomcat. > > So I think the solution for this would be, when registering the resource > via carbon, we have to somehow make those available to tomcat global > resources. > > Kishanthan. > >> >> Regards, >> Dinusha. >> >> >> On Tue, May 29, 2012 at 11:36 AM, Isuru Suriarachchi <is...@wso2.com>wrote: >> >>> >>> According to this, all our global resources can be registered in the >>> tomcat server.xml and can be looked up from anywhere. So we can make the >>> above resources work by doing this. >>> >>> But if we want to allow users to register and look up resources through >>> the carbon context, we have to register those resources in the same context >>> as the server.xml resources. Then only those can be made global. >>> >>> Thanks, >>> ~Isuru >>> >>> >>> On Tue, May 29, 2012 at 10:44 AM, Kishanthan Thangarajah < >>> kishant...@wso2.com> wrote: >>> >>>> This can be done. We have to first register JNDI resources for webapps >>>> context. Then we can lookup for them. As Paul mentioned, registering those >>>> resources can done in two ways. They can be either global or per webapp. If >>>> it is global, you have place them under <GlobalNamingResources> tag in >>>> tomcat's server.xml (catalina-server.xml in our case) file. Then they can >>>> be referenced in webapp via linking them in the context.xml file of webapp. >>>> >>>> Eg - <ResourceLink name="jdbc/MyDataSource" >>>> global="jdbc/MyDataSource" >>>> type="com.atomikos.jdbc.AtomikosDataSourceBean"/> >>>> >>>> If it is per webapp, then they can be registered by placing them in the >>>> context.xml file of the webapp it self. >>>> >>>> Eg - <Resource name="TransactionManager" auth="Container" >>>> type="com.atomikos.icatch.jta.UserTransactionManager" >>>> factory="org.apache.naming.factory.BeanFactory" /> >>>> >>>> Other properties for these resources should go inside each respective >>>> Resource tags. Make sure those classes used to define resource-type are in >>>> the classpath. Then have a reference for those resources in the web.xml of >>>> the webapp. >>>> >>>> Eg - <resource-ref> >>>> <description>Your Description</description> >>>> <res-ref-name>jdbc/MyDataSource</res-ref-name> >>>> <res-type>com.atomikos.jdbc.AtomikosDataSourceBean</res-type> >>>> <res-auth>Container</res-auth> >>>> </resource-ref> >>>> >>>> I'm currently writing an article on recent tomcat improvements, so it's >>>> better to include these details in there as-well. >>>> >>>> Thanks, >>>> Kishanthan. >>>> Ref - http://tomcat.apache.org/tomcat-7.0-doc/jndi-resources-howto.html >>>> >>>> On Mon, May 28, 2012 at 3:55 PM, Kishanthan Thangarajah < >>>> kishant...@wso2.com> wrote: >>>> >>>>> >>>>> >>>>> On Mon, May 28, 2012 at 2:51 PM, Isuru Suriarachchi <is...@wso2.com>wrote: >>>>> >>>>>> >>>>>> >>>>>> On Mon, May 28, 2012 at 2:45 PM, Paul Fremantle <p...@wso2.com>wrote: >>>>>> >>>>>>> If that is the way its "meant" to work, then we need a way to >>>>>>> register things like DataSources and Transaction context into the >>>>>>> webapps >>>>>>> JNDI. >>>>>>> >>>>>>> There is some good docs on how this works in Tomcat here: >>>>>>> >>>>>>> http://tomcat.apache.org/tomcat-6.0-doc/jndi-resources-howto.html#context.xml_configuration >>>>>>> >>>>>>> In Tomcat it seems you can define JNDI entries either locally in the >>>>>>> web.xml or globally and then "link" to them. >>>>>>> >>>>>> >>>>>> +1. This should work for us and looks like it's the correct way of >>>>>> doing this. Kishanthan, please look into this.. >>>>>> >>>>> >>>>> I will have a look at this and provide an update. Created a jira to >>>>> track this [1]. >>>>> >>>>> Kishanthan. >>>>> [1] https://wso2.org/jira/browse/CARBON-13277 >>>>> >>>>>> >>>>>> Thanks, >>>>>> ~Isuru >>>>>> >>>>>> >>>>>>> >>>>>>> Paul >>>>>>> >>>>>>> >>>>>>> On 28 May 2012 10:03, Isuru Suriarachchi <is...@wso2.com> wrote: >>>>>>> >>>>>>>> I had a discussion on this with Kicha and looks like the way it >>>>>>>> works is correct. When jndi resources are registered in the webapp >>>>>>>> itself, >>>>>>>> those get registered in it's own context and can be loaded anywhere >>>>>>>> within >>>>>>>> the webapp. But when resources are registered in the initial context, >>>>>>>> those >>>>>>>> are not visible to the webapps. Looks like this is the correct >>>>>>>> behavior. >>>>>>>> >>>>>>>> Can we please check whether this webapp works in previous releases? >>>>>>>> >>>>>>>> Thanks, >>>>>>>> ~Isuru >>>>>>>> >>>>>>>> On Mon, May 28, 2012 at 1:00 PM, Kishanthan Thangarajah < >>>>>>>> kishant...@wso2.com> wrote: >>>>>>>> >>>>>>>>> Here are the findings on this issue so far. >>>>>>>>> >>>>>>>>> In trunk, TransactionManager, UserTransaction etc, are getting >>>>>>>>> bind with InitialContext of javaUrlContextFactory[1] which handles the >>>>>>>>> “java:” namespace. This context is not bound to any thread or >>>>>>>>> classloader. >>>>>>>>> But in a webapp case, their context are isolated from each other and >>>>>>>>> the >>>>>>>>> classloaders are bound to each webapps naming context. But the >>>>>>>>> initialContext from javaUrlContextFactory will not be accessible for >>>>>>>>> them. >>>>>>>>> This is why it fails when doing lookup within a webapp. >>>>>>>>> >>>>>>>>> The javaUrlContextFactory first checks whether current thread or >>>>>>>>> classloader is bound to any context. If not, it will return the >>>>>>>>> intialContext. This is why the lookup within a service is successful >>>>>>>>> since >>>>>>>>> its class loader is not bound to any naming context. The lookup from >>>>>>>>> any BE >>>>>>>>> component also works fine. >>>>>>>>> >>>>>>>>> So we have to think of a way to handle this issue. >>>>>>>>> >>>>>>>>> @Dinusha, can you try whether this webapp works in previous >>>>>>>>> releases? >>>>>>>>> >>>>>>>>> Thanks, >>>>>>>>> Kishanthan. >>>>>>>>> [1] >>>>>>>>> http://grepcode.com/file/repo1.maven.org/maven2/org.apache.tomcat/tomcat-catalina/7.0.26/org/apache/naming/java/javaURLContextFactory.java#javaURLContextFactory.getInitialContext%28java.util.Hashtable%29 >>>>>>>>> >>>>>>>>> On Sun, May 27, 2012 at 11:47 AM, Dinusha Senanayaka < >>>>>>>>> dinu...@wso2.com> wrote: >>>>>>>>> >>>>>>>>>> Hi Kishanthan, >>>>>>>>>> >>>>>>>>>> On Sun, May 27, 2012 at 12:07 AM, Kishanthan Thangarajah < >>>>>>>>>> kishant...@wso2.com> wrote: >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Sat, May 26, 2012 at 3:05 PM, Dinusha Senanayaka < >>>>>>>>>>> dinu...@wso2.com> wrote: >>>>>>>>>>> >>>>>>>>>>>> Hi Kishanthan, >>>>>>>>>>>> >>>>>>>>>>>> The way you suggested also didn't work for me. I guess, in your >>>>>>>>>>>> sample wep-app, JNDI lookup has done for some data-source created >>>>>>>>>>>> within >>>>>>>>>>>> Tomcat itself. >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Can you share the webapp? I'll have a look into this. >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Please find the attached web-app. It refers to the >>>>>>>>>> transaction-manager, which has bind with JNDI, while >>>>>>>>>> transaction-manger >>>>>>>>>> bundle get start in carbon sever. >>>>>>>>>> >>>>>>>>>> Regards, >>>>>>>>>> Dinusha. >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Thanks, >>>>>>>>>>> Kishanthan. >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Regards, >>>>>>>>>>>> Dinusha. >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On Sat, May 26, 2012 at 12:50 PM, Supun Malinga < >>>>>>>>>>>> sup...@wso2.com> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Hi Kishanthan, >>>>>>>>>>>>> >>>>>>>>>>>>> Any idea why 'normal' jndi lookup doesn't work? >>>>>>>>>>>>> If I'm a user and want to do some jndi lookup insid ea webapp >>>>>>>>>>>>> I would follow the standard way. If that's not going to work I >>>>>>>>>>>>> think we >>>>>>>>>>>>> better at least document this. >>>>>>>>>>>>> >>>>>>>>>>>>> thanks, >>>>>>>>>>>>> >>>>>>>>>>>>> On Sat, May 26, 2012 at 11:31 AM, Kishanthan Thangarajah < >>>>>>>>>>>>> kishant...@wso2.com> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> Hi, >>>>>>>>>>>>>> This was one the issue I encountered when trying to write >>>>>>>>>>>>>> some webapps with webapp specific contextXml configuration where >>>>>>>>>>>>>> I store >>>>>>>>>>>>>> some JNDI resources in it. Normal lookup is as follow, which >>>>>>>>>>>>>> gives the >>>>>>>>>>>>>> exception when trying within a webapp, >>>>>>>>>>>>>> >>>>>>>>>>>>>> Context initCtx = new InitialContext(); >>>>>>>>>>>>>> Context envCtx = (Context) >>>>>>>>>>>>>> initCtx.lookup("java:comp/env"); >>>>>>>>>>>>>> >>>>>>>>>>>>>> But after some debugging at tomcat code level, I found a way >>>>>>>>>>>>>> to overcome this. We have to use the catalina jndi context >>>>>>>>>>>>>> implementation. >>>>>>>>>>>>>> Let me give some insight. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Context initCtx = new InitialContext(); >>>>>>>>>>>>>> SelectorContext selectorContext = new >>>>>>>>>>>>>> SelectorContext((Hashtable<String, Object>) >>>>>>>>>>>>>> initCtx.getEnvironment(), >>>>>>>>>>>>>> false); >>>>>>>>>>>>>> Context envCtx = (Context) >>>>>>>>>>>>>> selectorContext.lookup("java:comp/env"); >>>>>>>>>>>>>> >>>>>>>>>>>>>> Here the SelectorContext is the Catalina JNDI Context >>>>>>>>>>>>>> implementation. First using the IntialContext environment we >>>>>>>>>>>>>> have to build >>>>>>>>>>>>>> the Catalina selector context, and then we can lookup from that. >>>>>>>>>>>>>> Can you >>>>>>>>>>>>>> please try this and let me know if it fails? You can take a look >>>>>>>>>>>>>> at the >>>>>>>>>>>>>> webapp samples here [1]. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>> Kishanthan. >>>>>>>>>>>>>> [1] >>>>>>>>>>>>>> https://svn.wso2.org/repos/wso2/carbon/platform/trunk/products/as/modules/samples/product/TomcatWebApps/ >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Fri, May 25, 2012 at 5:45 PM, Dinusha Senanayaka < >>>>>>>>>>>>>> dinu...@wso2.com> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> Hi All, >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> I have registered a object with JNDI and try to access it >>>>>>>>>>>>>>> within a web-app. But JNDI lookup get fails saying >>>>>>>>>>>>>>> "javax.naming.NameNotFoundException: Name >>>>>>>>>>>>>>> [java:comp/TransactionManager] is >>>>>>>>>>>>>>> not bound in this Context. Unable to find [java:comp]". Even I >>>>>>>>>>>>>>> tried to >>>>>>>>>>>>>>> lookup a Carbon JNDI data-source, it also fails by giving >>>>>>>>>>>>>>> similar type >>>>>>>>>>>>>>> exception. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> But same JNDI lookups work inside a Axis2 service(AAR). Any >>>>>>>>>>>>>>> idea why this can be happened ? >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Regards, >>>>>>>>>>>>>>> Dinusha. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>> Dev mailing list >>>>>>>>>>>>>>> Dev@wso2.org >>>>>>>>>>>>>>> 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 >>>>>>>>>>>>>> Dev@wso2.org >>>>>>>>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> -- >>>>>>>>>>>>> Supun Malinga, >>>>>>>>>>>>> >>>>>>>>>>>>> Software Engineer, >>>>>>>>>>>>> WSO2 Inc. >>>>>>>>>>>>> http://wso2.com >>>>>>>>>>>>> http://wso2.org >>>>>>>>>>>>> email - sup...@wso2.com <sup...@wso2.com> >>>>>>>>>>>>> mobile - 071 56 91 321 >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> *Kishanthan Thangarajah* >>>>>>>>>>> Software Engineer, >>>>>>>>>>> Development Technologies Team, >>>>>>>>>>> WSO2, Inc. >>>>>>>>>>> lean.enterprise.middleware >>>>>>>>>>> >>>>>>>>>>> Mobile - +94773426635 >>>>>>>>>>> Blog - *http://kishanthan.wordpress.com* >>>>>>>>>>> Twitter - *http://twitter.com/kishanthan* >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> *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 >>>>>>>>> Dev@wso2.org >>>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Isuru Suriarachchi >>>>>>>> Senior Technical Lead >>>>>>>> WSO2 Inc. http://wso2.com >>>>>>>> email : is...@wso2.com >>>>>>>> blog : http://isurues.wordpress.com/ >>>>>>>> >>>>>>>> lean . enterprise . middleware >>>>>>>> >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> Dev mailing list >>>>>>>> Dev@wso2.org >>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Paul Fremantle >>>>>>> CTO and Co-Founder, WSO2 >>>>>>> OASIS WS-RX TC Co-chair, VP, Apache Synapse >>>>>>> >>>>>>> UK: +44 207 096 0336 >>>>>>> US: +1 646 595 7614 >>>>>>> >>>>>>> blog: http://pzf.fremantle.org >>>>>>> twitter.com/pzfreo >>>>>>> p...@wso2.com >>>>>>> >>>>>>> wso2.com Lean Enterprise Middleware >>>>>>> >>>>>>> Disclaimer: This communication may contain privileged or other >>>>>>> confidential information and is intended exclusively for the >>>>>>> addressee/s. >>>>>>> If you are not the intended recipient/s, or believe that you may have >>>>>>> received this communication in error, please reply to the sender >>>>>>> indicating >>>>>>> that fact and delete the copy you received and in addition, you should >>>>>>> not >>>>>>> print, copy, retransmit, disseminate, or otherwise use the information >>>>>>> contained in this communication. Internet communications cannot be >>>>>>> guaranteed to be timely, secure, error or virus-free. The sender does >>>>>>> not >>>>>>> accept liability for any errors or omissions. >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Isuru Suriarachchi >>>>>> Senior Technical Lead >>>>>> WSO2 Inc. http://wso2.com >>>>>> email : is...@wso2.com >>>>>> blog : http://isurues.wordpress.com/ >>>>>> >>>>>> lean . enterprise . middleware >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> *Kishanthan Thangarajah* >>>>> Software Engineer, >>>>> Development Technologies Team, >>>>> WSO2, Inc. >>>>> lean.enterprise.middleware >>>>> >>>>> Mobile - +94773426635 >>>>> Blog - *http://kishanthan.wordpress.com* >>>>> Twitter - *http://twitter.com/kishanthan* >>>>> >>>>> >>>> >>>> >>>> -- >>>> *Kishanthan Thangarajah* >>>> Software Engineer, >>>> Development Technologies Team, >>>> WSO2, Inc. >>>> lean.enterprise.middleware >>>> >>>> Mobile - +94773426635 >>>> Blog - *http://kishanthan.wordpress.com* >>>> Twitter - *http://twitter.com/kishanthan* >>>> >>>> >>> >>> >>> -- >>> Isuru Suriarachchi >>> Senior Technical Lead >>> WSO2 Inc. http://wso2.com >>> email : is...@wso2.com >>> blog : http://isurues.wordpress.com/ >>> >>> lean . enterprise . middleware >>> >>> >> > > > -- > *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 Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev