WSAD5技巧之二:使用资源引用

————————————

提纲:

————————————

步骤一:创建数据源引用

步骤二:测试数据源引用

步骤三:创建EJB引用

步骤四:测试EJB引用

————————————

资源引用使得应用程序能够通过别名查找数据源和EJB Home接口,避免使用实际的JNDI名称。代码中用到的别名与资源实际的JNDI名称之间的映射由管理员负责完成。

要使用别名,应用程序必须使用java:com/env名称空间。例如:


javax.naming.InitialContext ctx = new javax.naming.InitialContext();

DataSource ds = (DataSource) ctx.lookup("java:comp/env/DataSourceAlias");



资源名称映射的主要优点有:

 管理员可以把数据源的别名映射到系统中已定义的数据源,多个毫无关联的应用程序可以共享同一个数据源。

 多个不同的企业应用模块(EAMEnterprise Application Module)可以包含同一个EJB,而不至引起JNDI名称冲突。针对每一个应用,管理员赋予EJB一个唯一的JNDI名称,然后把该名称映射到应用程序代码中用到的别名。

下面我们分别看看数据源引用、EJB引用的配置、使用过程。

步骤一:创建数据源引用

假设我们要在Servlet代码中通过别名DataSourceAlias查找一个数据源,而且系统中已有一个JNDI名称为jdbc/MyDataSource的数据源。下面介绍把别名映射到实际的JNDI名称的步骤。

假设要访问数据源别名的Servlet包含在一个Web项目中,首先在WSAD中打开部署描述符编辑器——双击Web项目的WEB-INF/web.xml文件。点击引用选项卡,再点击页面顶部的资源选项卡,如图一。



图一



点击资源引用下面的添加按钮,输入代码中使用的别名:DataSourceAlias。接着指定下列选项:

 类型:javax.sql.DataSource。用旁边的浏览按钮选取该名字。

 认证:Application。大多数Servlet和会话EJB或者通过DataSource.getConnection提供用 户ID和密码,或者依靠数据源的默认用户ID和密码获得访问,这类认证方式称为Application认证。CMP EJB要依靠容器来打开连接。

 共享:Sharable

 WebSphere绑定:输入数据源的实际的JNDI名称。在本例中,这个名称是jdbc/MyDataSource

保存并关闭部署描述符编辑器。

步骤二:测试数据源引用

Web模块中新建一个Servlet,输入其doGet方法,代码如下所示:


public void doGet(HttpServletRequest req, HttpServletResponse resp)

 throws ServletException, IOException {

        javax.sql.DataSource ds = null;

        java.sql.Connection con = null;

        java.io.PrintWriter out = resp.getWriter();

               resp.setContentType("text/html");

               try {

               out.println("正在查找数据源<br>");

               javax.naming.InitialContext ctx = new javax.naming.InitialContext();

               ds = (javax.sql.DataSource) ctx.lookup("java:comp/env/DataSourceAlias");

               out.println("获得连接...<br>");

               con = ds.getConnection();

               con.close();

               } catch (Exception e) {

               e.printStackTrace(out);

               }

               out.println("完成!<br>");

}



运行Servlet并进行测试。

步骤三:创建EJB引用

假设我们要在Servlet中通过别名SessionBeanAlias查找一个会话EJB,而该会话EJB实际的JNDI名称是ejb/com/acme/ejb/ItemHelperHome。下面来看看如何映射这两个名称。

打开web.xml文件编辑器,点击引用选项卡,从页面顶端选择“EJB”。点击添加按钮加入别名SessionBeanAlias。点击链接旁边的浏览按钮,系统将显示出当前模块所属应用中已定义的所有EJB,如图二。



图二



选中EJB,然后点击确定。系统将自动填写其本地/远程接口、EJB类型和JNDI名称,如图三。保存并关闭部署描述符编辑器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值