(转)WebSphere的web工程中怎么获取数据源
原文:http://aguu125.iteye.com/blog/1694313?
?https://blog.csdn.net/bigtree_3721/article/details/44900325-------JNDI之java:comp/env
was配置數(shù)據(jù)源和tomcat是不同的。tomcat只需要配置tomcat 的service.xml或者content.xml,然后 WEB程序就不需要配置了。但是was不同.was 除了在控制臺(tái)配置數(shù)據(jù)源后,還需要在web.xml 和WEB-IBN.XML中配置
?
websphere 下獲取jndi,有兩種方式:java:comp/env/cas與jdbc/cas。?A.lookup("java:comp/env/cas")與lockup("jdbc/cas")在websphere中都可以使用。兩者的差別在于,java:comp/env/cas是websphere建議使用的方式 。
??? 如果你當(dāng)前的線程屬于websphere的線程,建議使用java:comp/env/cas的方式,否則was的控制臺(tái)將報(bào)出警告。?
? ? 在web程序中,要實(shí)現(xiàn)通過java:comp/env/cas的方式來獲得jndi必須在web.xm和ibm-web-bnd.xmi文件里分別添加?
?web.xml:?
?
ibm-web-bnd.xmi:?
?
?
?以上兩段配置的意思是告訴web容器的上下文環(huán)境,將應(yīng)用映射到的jndi資源。然后就可以通過lookup(“java:comp/env/cas/jdbc/cas_ase”)名來獲得數(shù)據(jù)源。?
???? 然而,如果你當(dāng)前執(zhí)行的線程不在was的容器內(nèi),比如說你通過web容器的線程新起了一個(gè)子線程,那么該線程將不在容器的上下文內(nèi),通過lookup(“java:comp/env/cas/jdbc/cas_ase”)名來獲得數(shù)據(jù)源?
???? 將報(bào)錯(cuò),這個(gè)時(shí)候你只能使用通用的獲取jndi資源的方式,就是通過lookup(“jdbc/cas”)來實(shí)現(xiàn)?!癹dbc/cas”為你在was的資源設(shè)定的jndi名
?
?
java代碼:?
?
關(guān)于JNDI可以看:http://blog.csdn.net/lan861698789/article/details/26402935?
?
?
關(guān)于web.xml中參數(shù)的解釋:
?
resource-ref元素用于指定對(duì)外部資源的servlet引用的聲明。<!ELEMENT resource-ref (description?, res-ref-name,resource-ref子元素的描述如下:?
● res-ref-name是資源工廠引用名的名稱。該名稱是一個(gè)與java:comp/env上下文相對(duì)應(yīng)的JNDI名稱,并且在整個(gè)Web應(yīng)用中必須是惟一的。 ? ● res-auth表明:servlet代碼通過編程注冊(cè)到資源管理器,或者是容器將代表servlet注冊(cè)到資源管理器。該元素的值必須為Application或Container。? ● res-sharing-scope表明:是否可以共享通過給定資源管理器連接工廠引用獲得的連接。該元素的值必須為Shareable(默認(rèn)值)或Unshareable。轉(zhuǎn)載于:https://www.cnblogs.com/liujiacai/p/10299408.html
總結(jié)
以上是生活随笔為你收集整理的(转)WebSphere的web工程中怎么获取数据源的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2022年推荐算法效率开发必备工具榜单
- 下一篇: json_decode php数组,js