Websphere下获取jndi、java:comp/env/cas与jdbc/cas的区别

日期: 2010-03-30 来源:TechTarget中国 英文

  Websphere下获取jndi,java:comp/env/cas与jdbc/cas的区别:

  A.lookup(“java:comp/env/cas”)与lockup(“jdbc/cas”)在websphere中都可以使用。两者的差别在于,java:comp/env/cas是websphere建议使用的方式。

  如果你当前的线程属于websphere的线程,建议使用java:comp/env/cas的方式,否则was的控制台将报出警告。

  在web程序中,要实现通过java:comp/env/cas的方式来获得jndi必须在web.xm和ibm-web-bnd.xmi文件里分别添加

        web.xml:
        <resource-ref    id=”ResourceRef_1129470735234″>  
         <res-ref-name>cas_ase</res-ref-name>  
         <res-type>java.sql.DataSource</res-type>  
         <res-auth>Container</res-auth>  
         <res-sharing-scope>Shareable</res-sharing-scope>  
        </resource-ref>

        ibm-web-bnd.xmi:
        <resRefBindings    xmi_id=”ResourceRefBinding_1129470735234″    jndiName=”jdbc/cas_ase”>  
           <bindingResourceRef    href=”WEB-INF/web.xml#ResourceRef_1129470735234″/>  
        </resRefBindings>

  以上两段配置的意思是告诉web容器的上下文环境,将应用映射到的jndi资源。然后就可以通过lookup(“java:comp/env/cas/jdbc/cas_ase”)名来获得数据源。

  然而,如果你当前执行的线程不在was的容器内,比如说你通过web容器的线程新起了一个子线程,那么该线程将不在容器的上下文内,通过lookup(“java:comp/env/cas/jdbc/cas_ase”)名来获得数据源将报错,这个时候你只能使用通用的获取jndi资源的方式,就是通过lookup(“jdbc/cas”)来实现。“jdbc/cas”为你在was的资源设定的jndi名。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐