WebSphere的web工程中怎么获取数据源
来源:互联网 发布:js ll 和 优先级 编辑:程序博客网 时间:2024/05/17 22:59
原文:http://aguu125.iteye.com/blog/1694313
was配置数据源和tomcat是不同的。tomcat只需要配置tomcat 的service.xml或者content.xml,然后 WEB程序就不需要配置了。但是was不同.was 除了在控制台配置数据源后,还需要在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建议使用的方式 。
如果你当前的线程属于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名
java代码:
package com;import java.sql.Connection;import java.util.Hashtable;import javax.naming.Context;import javax.naming.InitialContext;import javax.naming.NamingException;import javax.sql.DataSource;public class conn {public static void main(String[] args) throws Exception {InitialContext initialContext = getInitialContext();javax.sql.DataSource ds = (DataSource) initialContext.lookup("jdbc/cas_ase");Connection cn = ds.getConnection();if (cn != null){System.out.println("Connection ok");}}/* 因为此类不在Websphere服务器内部运行,所以需要配置环境变量,否则是可以省略的 */public static InitialContext getInitialContext() throws NamingException {Hashtable env = new Hashtable();env.put(Context.INITIAL_CONTEXT_FACTORY, "com.ibm.websphere.naming.WsnInitialContextFactory");env.put(Context.PROVIDER_URL, "iiop://localhost:2809"); // iiop是协议InitialContext context = new InitialContext(env);return context;}}
关于JNDI可以看:http://blog.csdn.net/lan861698789/article/details/26402935
关于web.xml中参数的解释:
resource-ref元素用于指定对外部资源的servlet引用的声明。 <!ELEMENT resource-ref (description?, res-ref-name,res-type, res-auth, res-sharing-scope?)> <!ELEMENT description (#PCDATA)> <!ELEMENT res-ref-name (#PCDATA)> <!ELEMENT res-type (#PCDATA)> <!ELEMENT res-auth (#PCDATA)> <!ELEMENT res-sharing-scope (#PCDATA)>resource-ref子元素的描述如下:
● res-ref-name是资源工厂引用名的名称。该名称是一个与java:comp/env上下文相对应的JNDI名称,并且在整个Web应用中必须是惟一的。
● res-auth表明:servlet代码通过编程注册到资源管理器,或者是容器将代表servlet注册到资源管理器。该元素的值必须为Application或Container。
● res-sharing-scope表明:是否可以共享通过给定资源管理器连接工厂引用获得的连接。该元素的值必须为Shareable(默认值)或Unshareable。
0 0
- WebSphere的web工程中怎么获取数据源
- websphere 获取数据源
- eclipse web工程中jndi数据源设置
- Websphere中创建mysql数据源
- tomcat中运行正常的web项目部署至websphere后,spring无法获取bean
- java web工程中获取根目录的方法
- java web工程中获取根目录的方法
- web工程中获取文件的Inpustream几种方法
- 配置tomcat web工程数据源
- 在Websphere AppServer 5.1中配置数据源
- 在 WebSphere® Studio 中配置数据源
- 工程无法获取weblogic数据源
- web中jsp获取工程路径方法
- java web工程中获取webroot 路径
- myeclipse无法识别cvs的web工程,怎么导入myeclipse中?
- java Web 工程servlet中@WebServlet("/HelloServlet") 是怎么工作的
- 在websphere上一个J2EE应用中引用多个数据源JNDI的方法
- 在websphere上一个J2EE应用中引用多个数据源JNDI的方法[转帖]
- 网页防止复制、防止下载、防止右键的js
- 第十五周周报
- 利用python开源库制作并验证torrent种子文件
- 网游服务器编程入门之路一
- 周报(十一周)
- WebSphere的web工程中怎么获取数据源
- 创新实验室实习生每周工作总结【实习第十一周】
- 2014/6/9~2014/6/15
- shell编程——if语句
- 查询选修了全部课程的学生姓名
- UISearchBar的使用
- Cascalog入门
- NMF-matlab
- 车载系统之 Windows CE 应用软件框架设计