JavaBeans:创建客户端应用

Cabin实体和 TravelAgent EJB已经部署完毕,我们打算从远程客户端对其进行访问。本节中,我们会创建一个远程客户端,连向EJB服务器,为TravelAgent EJB定位EJB远程接口,并与TravelAgent EJB进行交互,以创建Cabin实体并将其从数据库中取出。下列代码展示了一个Java应用程序,该程序新建了一个Cabin实体,设置其name、 deckLevel、shipId和bedCount成员属性,然后再用主键对其进行定位。

  package com.titan.clients;
   import com.titan.travelagent.TravelAgentRemote;
   import com.titan.domain.Cabin;
   import javax.naming.InitialContext;
   import javax.naming.Context;
   import javax.naming.NamingException;
   import java.util.Properties;
   import javax.rmi.PortableRemoteObject;
   public class Client {
     public static void main(String [] args) {
       try {
         Context jndiContext = getInitialContext( );
         Object ref = jndiContext.lookup("TravelAgentBean/remote");
         TravelAgentRemote dao = (TravelAgentRemote)
         PortableRemoteObject.narrow(ref,TravelAgentRemote.class);
         Cabin cabin_1 = new Cabin( );
         cabin_1.setId(1);
         cabin_1.setName("Master Suite");
         cabin_1.setDeckLevel(1);
         cabin_1.setShipId(1);
         cabin_1.setBedCount(3);
         dao.createCabin(cabin_1);
         Cabin cabin_2 = dao.findCabin(1);
         System.out.println(cabin_2.getName( ));
         System.out.println(cabin_2.getDeckLevel( ));
         System.out.println(cabin_2.getShipId( ));
         System.out.println(cabin_2.getBedCount( ));
       } catch (javax.naming.NamingException ne){ne.printStackTrace( );}
     }
     public static Context getInitialContext( )
     throws javax.naming.NamingException {
       Properties p = new Properties( );
       // ... 指定厂商专有的JNDI属性
       return new javax.naming.InitialContext(p);
     }
   }

为了访问enterprise bean,客户端首先使用JNDI获得一个连向bean所在容器的目录。JNDI是一组独立于实现的API,用于目录和命名系统。每家EJB厂商都必须提供一个与JNDI兼容的目录服务。这意味着他们必须给出一个JNDI service provider(JNDI服务提供程序),即一段类似JDBC驱动的软件代码。不同的service provider与不同的目录服务相连接,就如同JDBC一样,不同的驱动程序与不同的关系数据库相连接。getInitialContext()方法使用JNDI来获得一个指向EJB服务器的网络连接。

用于获取JNDI上下文的代码和你使用哪一家EJB厂商的产品有关。如何获取与你所用的产品相配的JNDI上下文,请参考厂商文档。例如,在WebSphere中用于获取JNDI上下文的代码可能类似如下。

  public static Context getInitialContext( )
   throws javax.naming.NamingException {
     java.util.Properties properties = new java.util.Properties( );
     properties.put(javax.naming.Context.PROVIDER_URL, "iiop:///");
     properties.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY,
     "com.ibm.ejs.ns.jndi.CNInitialContextFactory");
     return new InitialContext(properties);
   }

时间: 2024-08-31 04:19:45

JavaBeans:创建客户端应用的相关文章

ASP.NET+Atlas创建客户端Web应用程序

asp.net|web|程序|创建|客户端 提要 本文介绍了Atlas框架,并探讨它的客户端和服务器端类库及其编程模型.另外,本文还详细剖析了一个支持Atlas功能的示例Web应用程序. 一. 开发环境说明 本文中所提供的信息适用于下列技术:Asp.net 2.0,Asp.net Atlas CTP,Visual Studio Professional 2005和Visual Web Developer 2005. 二. 简介 Atlas是一个框架的代号,该框架对于客户端Web应用程序的开发方面

使用AJAX和J2EE创建瘦客户端(1)

ajax|j2ee|创建|客户端 创建于1998年的Iconix Pharmaceuticals公司从事科研和工业方面的软件开发.该公司是chemogenomics方面的先驱,chemogenomics是一门学科,这门学科使用化学和基因学的方法,在堆积如山的数据中深入研究,而这些数据对于开发新药并推向市场来说是必须的.  对于公司来说,一个主要的挑战是:产生一种新药或者提供制药工业所需要的信息需要将分散的.不同的数据库的数据集成起来,并且来分析它们,最后得到引人注目的结果.大多数的研究者都同意:

使用AJAX和J2EE创建瘦客户端(2)

ajax|j2ee|创建|客户端 2.在数据传递到JSP页面时,使用Java Server Pages (JSP) model 虽然这个方案相当好,开发小组发现页面上要显示的数据的数量太大,这会打击用户的使用兴趣.另外,从效率角度来说,图形数据的交换和传递特别慢.例如,Iconix Confidence Interval Graphic--用来显示扫描到的基因表达式数据,最少需要2到3秒才能全部载入,原因是这个方案需要一个专门的图形Servlet来单独的显示每一个图形. DrugMatrix C

AJAX和J2EE创建功能强大的瘦客户端

ajax|j2ee|创建|客户端 创建于1998年的Iconix Pharmaceuticals公司从事科研和工业方面的软件开发.该公司是chemogenomics方面的先驱,chemogenomics是一门学科,这门学科使用化学和基因学的方法,在堆积如山的数据中深入研究,而这些数据对于开发新药并推向市场来说是必须的. 对于公司来说,一个主要的挑战是:产生一种新药或者提供制药工业所需要的信息需要将分散的.不同的数据库的数据集成起来,并且来分析它们,最后得到引人注目的结果.大多数的研究者都同意:当

使用AJAX和J2EE创建功能强大的瘦客户端

ajax|j2ee|创建|客户端 创建于1998年的Iconix Pharmaceuticals公司从事科研和工业方面的软件开发.该公司是chemogenomics方面的先驱,chemogenomics是一门学科,这门学科使用化学和基因学的方法,在堆积如山的数据中深入研究,而这些数据对于开发新药并推向市场来说是必须的. 对于公司来说,一个主要的挑战是:产生一种新药或者提供制药工业所需要的信息需要将分散的.不同的数据库的数据集成起来,并且来分析它们,最后得到引人注目的结果.大多数的研究者都同意:当

使用AJAX优化客户端:Iconix Pharmaceuticals使用AJAX和J2EE创建功能强大的瘦客户端的实践

ajax|j2ee|创建|客户端|优化     创建于1998年的Iconix Pharmaceuticals公司从事科研和工业方面的软件开发.该公司是chemogenomics方面的先驱,chemogenomics是一门学科,这门学科使用化学和基因学的方法,在堆积如山的数据中深入研究,而这些数据对于开发新药并推向市场来说是必须的.     对于公司来说,一个主要的挑战是:产生一种新药或者提供制药工业所需要的信息需要将分散的.不同的数据库的数据集成起来,并且来分析它们,最后得到引人注目的结果.大

使用AJAX和J2EE创建瘦客户端

ajax|j2ee|创建|客户端 创建于1998年的Iconix Pharmaceuticals公司从事科研和工业方面的软件开发.该公司是chemogenomics方面的先驱,chemogenomics是一门学科,这门学科使用化学和基因学的方法,在堆积如山的数据中深入研究,而这些数据对于开发新药并推向市场来说是必须的. 对于公司来说,一个主要的挑战是:产生一种新药或者提供制药工业所需要的信息需要将分散的.不同的数据库的数据集成起来,并且来分析它们,最后得到引人注目的结果.大多数的研究者都同意:当

ASP.NET+XML Web服务客户端创建Web服务

asp.net|web|web服务|xml|创建|客户端 XML Web服务是一个提供特别的功能元素的可编程实体,比如应用程序逻辑,并且可以使用普遍存在的Internet标准例如XML和HTTP访问许多潜在的完全不同的系统.XML Web服务依赖于对XML和其他因特网标准的广泛接受,使用它们来创建支持应用程序互操作性的基础结构,解决了许多过去阻碍互操作性的问题. XML Web服务可在单个应用程序中使用,也可国际互联网被许多应用程序使用.因为一个XML Web服务可通过一个标准接口访问,所以它允

Zookeeper之Curator(1)客户端基本的创建,删除,更新,查找操作api

Curator Framework提供了简化使用zookeeper更高级的API接口.它包涵很多优秀的特性,主要包括以下三点: 自动连接管理:自动处理zookeeper的连接和重试存在一些潜在的问题:可以watch NodeDataChanged event和获取updateServerList;Watches可以自动被Cruator recipes删除: 更干净的API:简化raw zookeeper方法,事件等:提供现代流式API接口 Recipe实现:leader选举,分布式锁,path缓