FROM:
关于Java Socket编程的详细介绍
http://news.newhua.com/news1/program_net/2009/64/0964941376944EFKG33EF18A3B0HG5AEA4A8D7D61FA01CGHG0F7DG.html
-------------------------------------------------------------------------------
FROM:EJB2.0
远程接口&本地接口
FROM:http://www.blogjava.net/relax/archive/2005/12/02/22267.html
EJB remote interface(javax.ejb.EJBObject)和remote home interface(javax.ejb.EJBHome)在本质上是Java RMI接口。远程客户端运用接口和与Java RMI-IIOP兼容的参数与EJBs通讯。参数和方法的结果值在同一个容器中传递,或者跨网络传递到远程容器。
相反,EJB local interface(javax.ejb.EJBLocalObject)和local home interface(javax.ejb.EJBLocalHome)不是Java RMI接口,它们是EJB 2.0的新功能。本地客户端——如其它EJBs,运用相同JVM中传递的参数直接与EJBs通讯。这种技术消除了网络潜在的问题、参数复制的问题以及需要与Java RMI-IIOP兼容的问题。
也意味着,EJB客户端可以运用一个更轻量级的编程模式来访问服务。该方法很适合细粒度的(fine-grained)方法调用,因为作为EJB实例的位于同一个JVM中的EJB客户端可以用本地接口来避免不必要的费用。(网络传输)
引进本地客户端产生的另一个显著的变化就是类型的转换。
当ejb的服务端和客户端在一个JVM的时候,为了提高jndi查询效率,并且提高方法调用效率,本地调用可以不走TCP/IP ,这样可以明显提高调用的效率。
所有的EJB实例在运用前必须转换到它们恰当的接口类型,所以,有时侯,在运用远程客户端时,要保证Java RMI-IIOP的兼容性,你必须在转换EJB实例前运用java.rmi.PortableRemoteObject.narrow()来缩小(narrow)它。
但本地客户端可以直接把EJB实例转换成local home interface类型,如下面的代码片段:
InitialContext initCtx = new
InitialContext();
ExampleLocalHome exampleLocalHome =
(ExampleLocalHome)initCtx.lookup("java:comp/
env/ejb/Example");
|
从local home创建了EJB实例:
ExampleLocal exampleLocal =
exampleLocalHome.create();
|
<ejb-jar>
<enterprise-beans>
<session>
<ejb-name>...</ejb-name>
<local-home>...</local-home>
<local>...</local>
<ejb-link>...</ejb-link>
...
</session>
</enterprise-beans>
<assembly-descriptor>
...
</assembly-descriptor>
</ejb-jar>
远程调用:
*以下方法是作用是:通过传递环境属性选择JNDI驱动和服务器的网络位置,
并连接到JNDI树。
这是采用weblogic做EJB容器时,远程调用EJB的固定初始化模式
*/
private InitialContext getInitialContext() throws Exception {
//EJB容器的地址
String url = "t3://image:7001";
String user = null;
String password = null;
Properties properties;
properties = new Properties();//
properties.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
properties.put(Context.PROVIDER_URL, url);
if (user != null) {
properties.put(Context.SECURITY_PRINCIPAL, user);
properties.put(Context.SECURITY_CREDENTIALS,
password == null ? "" : password);
}
return new javax.naming.InitialContext(properties);
}
}
Object obj=ctx.lookup("SayHello");
//获得远程EJB组件的home接口的引用
testhello.SayHelloHome home=(testhello.SayHelloHome)PortableRemoteObject.narrow (obj,testhello.SayHelloHome.class);
//获得远程EJB组件的remote接口的引用
testhello.SayHello hello=home.create();
String name="test";
String sayString=hello.sayHello(name);//执行
使用本地接口:http://8366.iteye.com/blog/555828
问题:
分享到:
相关推荐
通过上述分析,我们可以看到EJB的工作原理涉及到了多个层次的概念和技术,包括EJB容器、客户端和服务端代理对象、远程调用技术(RMI)、网络通信(Socket)以及命名和目录服务(JNDI)。这些元素共同协作,使得EJB...
### EJB工作原理详解 #### 一、EJB概述与工作流程 EJB(Enterprise JavaBeans)是Java EE平台的核心组件之一,专为构建大型分布式企业级应用而设计。它提供了一种在服务器端实现业务逻辑的方式,允许开发者将业务...
1. **网络配置**:确保服务器之间的通信是可行的,可能需要配置`<socket-binding-group>`来开放特定端口用于集群通信。 2. **集群配置**:在`<subsystem xmlns="urn:jboss:domain:clustering:1.2">`下,设置集群...
### EJB工作原理学习笔记 #### RMI工作原理 RMI(Remote Method Invocation)是一种用于在不同的Java虚拟机(JVMs)之间进行远程过程调用的技术。它允许开发者创建分布式应用程序,这些应用程序可以在网络的不同部分...
Java笔试题大集合是针对Java开发者的一份综合测试资料,涵盖了JSP、Java核心和EJB(Enterprise JavaBeans)等关键领域。这份资料对于准备Java相关的面试或笔试具有极高的价值,因为它帮助开发者复习和检验自己的技能...
1. **编辑manifest.mf文件**:在原有的manifest.mf文件基础上,添加`Class-Path`属性,其后紧跟依赖的JAR文件名,例如`Class-Path: Upload.jar Socket.jar`。值得注意的是,每个JAR文件之间必须以空格分隔,且`Class...
### EJB轻松掌握的八步 #### 引言 EJB(Enterprise JavaBeans)作为Java技术体系中的一个重要组成部分,标志着Java程序员从初级到高级的重要过渡阶段。它不仅是SUN公司认证Java程序员(SCJP)与SUN公司认证Java...
- **创建Stub**:`Person_Stub`类同样实现了`Person`接口,并负责通过Socket连接与`Skeleton`通信。 - **创建Skeleton**:这部分代码未给出完整的`Skeleton`实现,但可以推断它应该包括接收请求、调用`PersonServer`...
JavaEE 7 后端与 Socket.IO 集成详解 在现代Web开发中,实时通信功能变得越来越重要,这通常通过WebSocket协议实现。Socket.IO 是一个流行的JavaScript库,它提供了一种简单的方法来实现实时应用,而无需关心底层的...
Java笔试题目涵盖的基础知识广泛,包括了语言特性、编程技巧、企业级应用服务器(EJB)的理解以及面试中常出现的问题。下面将详细讲解这些领域的关键知识点。 1. **Java基础**: - **数据类型与变量**:Java分为基本...
EJB(Enterprise JavaBeans)是Java EE(Java Platform, Enterprise Edition)的一部分,它提供了一种框架来创建和部署企业级的应用,其中就包括了RMI的使用。 在RMI中,远程方法调用的过程可以分为以下几个关键点...
EJB 3.0引入了注解,简化了开发过程,理解EJB的工作原理和生命周期,以及如何在应用程序中使用它们,对于企业级开发非常重要。 **8. 网络编程** Java提供了Socket和ServerSocket类来实现网络通信。理解TCP/IP协议,...
本笔记将重点讨论EJB与Java Bean的区别以及Socket编程的基本概念。 **EJB (Enterprise JavaBeans)与Java Bean** EJB是一种服务器端组件架构,用于简化使用Java构建企业级分布式组件应用的过程。EJB的优势在于,它...
EJB 组件并不意味着提供网络 socket 服务器功能,但是,这个体系结构使得 EJB 组件可以作为 socket 客户或是 RMI 客户,并且可以和容器所管理的环境外面的代码进行通讯。 6. 使用映象 API 查询 EJB 组件由于安全...
文章来源:硅谷动力 作者:中流砥柱 ... 本文首先以一个例程介绍了一般分布式对象应用程序的基本原理,然后从基本的下载、安装、配置开始,逐步介绍EJB程序编程的方法,从而使EJB的学习成为一件轻松而有
3. **EJB与Socket通信**:可能详细解释了在EJB中如何使用Socket进行网络通信,以及这种情况下遇到SocketTimeoutException的特殊性。 4. **源码分析**:深入到Java的Socket实现中,理解异常是如何被抛出的,可能涉及...
文档中涵盖了多个方面的知识点,包括 SOAP 协议、EJB 组件实现、Java 语言特性限制、Java 平台安全策略等。 SOAP 协议 SOAP(Simple Object Access Protocol)是一种基于 XML 的轻量级协议,用于交换结构化信息在...
11. SSL支持:通过SSL(Secure Socket Layer)加密通信,确保数据传输的安全性。 开源软件的性质使得EJB Mail and News具有开放源代码、自由使用和修改的特点,开发者可以根据自己的需求对其进行定制,或者贡献代码...
8. **安全性**:解释如何设置EJB的安全模型,包括角色基元、认证和授权,以及与SSL(Secure Socket Layer)和TLS(Transport Layer Security)的集成。 9. **Sun ONE应用服务器配置**:介绍如何在Oracle Solaris 9...