`
zlotus
  • 浏览: 54166 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

Socket&EJB

    博客分类:
  • Java
阅读更多

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

问题:

 

 

 

 

  • jms.rar (23.2 KB)
  • 下载次数: 1
分享到:
评论

相关推荐

    EJB原理图:EJB工作原理

    通过上述分析,我们可以看到EJB的工作原理涉及到了多个层次的概念和技术,包括EJB容器、客户端和服务端代理对象、远程调用技术(RMI)、网络通信(Socket)以及命名和目录服务(JNDI)。这些元素共同协作,使得EJB...

    EJB工作原理

    ### EJB工作原理详解 #### 一、EJB概述与工作流程 EJB(Enterprise JavaBeans)是Java EE平台的核心组件之一,专为构建大型分布式企业级应用而设计。它提供了一种在服务器端实现业务逻辑的方式,允许开发者将业务...

    jbss 7.1.2 EJB 集群例子

    1. **网络配置**:确保服务器之间的通信是可行的,可能需要配置`&lt;socket-binding-group&gt;`来开放特定端口用于集群通信。 2. **集群配置**:在`&lt;subsystem xmlns="urn:jboss:domain:clustering:1.2"&gt;`下,设置集群...

    EJB工作原理学习笔记

    ### EJB工作原理学习笔记 #### RMI工作原理 RMI(Remote Method Invocation)是一种用于在不同的Java虚拟机(JVMs)之间进行远程过程调用的技术。它允许开发者创建分布式应用程序,这些应用程序可以在网络的不同部分...

    java笔试题大集合及答案(jsp-java-ejb公司笔试题)

    Java笔试题大集合是针对Java开发者的一份综合测试资料,涵盖了JSP、Java核心和EJB(Enterprise JavaBeans)等关键领域。这份资料对于准备Java相关的面试或笔试具有极高的价值,因为它帮助开发者复习和检验自己的技能...

    EJB3.0打包策略

    1. **编辑manifest.mf文件**:在原有的manifest.mf文件基础上,添加`Class-Path`属性,其后紧跟依赖的JAR文件名,例如`Class-Path: Upload.jar Socket.jar`。值得注意的是,每个JAR文件之间必须以空格分隔,且`Class...

    EJB轻松掌握的八步

    ### EJB轻松掌握的八步 #### 引言 EJB(Enterprise JavaBeans)作为Java技术体系中的一个重要组成部分,标志着Java程序员从初级到高级的重要过渡阶段。它不仅是SUN公司认证Java程序员(SCJP)与SUN公司认证Java...

    EJB工作原理学习笔记.pdf

    - **创建Stub**:`Person_Stub`类同样实现了`Person`接口,并负责通过Socket连接与`Skeleton`通信。 - **创建Skeleton**:这部分代码未给出完整的`Skeleton`实现,但可以推断它应该包括接收请求、调用`PersonServer`...

    A JavaEE 7 backend for socket.io.zip

    JavaEE 7 后端与 Socket.IO 集成详解 在现代Web开发中,实时通信功能变得越来越重要,这通常通过WebSocket协议实现。Socket.IO 是一个流行的JavaScript库,它提供了一种简单的方法来实现实时应用,而无需关心底层的...

    java笔试题(基础、编程、应用服务器和EJB方面)

    Java笔试题目涵盖的基础知识广泛,包括了语言特性、编程技巧、企业级应用服务器(EJB)的理解以及面试中常出现的问题。下面将详细讲解这些领域的关键知识点。 1. **Java基础**: - **数据类型与变量**:Java分为基本...

    EJB rmi-overview PPT

    EJB(Enterprise JavaBeans)是Java EE(Java Platform, Enterprise Edition)的一部分,它提供了一种框架来创建和部署企业级的应用,其中就包括了RMI的使用。 在RMI中,远程方法调用的过程可以分为以下几个关键点...

    Java笔试题(非常全),包括基础方面、代码与编程题、jsp、EJB等

    EJB 3.0引入了注解,简化了开发过程,理解EJB的工作原理和生命周期,以及如何在应用程序中使用它们,对于企业级开发非常重要。 **8. 网络编程** Java提供了Socket和ServerSocket类来实现网络通信。理解TCP/IP协议,...

    分布式技术相关知识学习笔记

    本笔记将重点讨论EJB与Java Bean的区别以及Socket编程的基本概念。 **EJB (Enterprise JavaBeans)与Java Bean** EJB是一种服务器端组件架构,用于简化使用Java构建企业级分布式组件应用的过程。EJB的优势在于,它...

    java基础学习心得.doc

    EJB 组件并不意味着提供网络 socket 服务器功能,但是,这个体系结构使得 EJB 组件可以作为 socket 客户或是 RMI 客户,并且可以和容器所管理的环境外面的代码进行通讯。 6. 使用映象 API 查询 EJB 组件由于安全...

    EJB轻松进阶之一

    文章来源:硅谷动力 作者:中流砥柱 ... 本文首先以一个例程介绍了一般分布式对象应用程序的基本原理,然后从基本的下载、安装、配置开始,逐步介绍EJB程序编程的方法,从而使EJB的学习成为一件轻松而有

    java.net.SocketTimeoutException: Receive timed out

    3. **EJB与Socket通信**:可能详细解释了在EJB中如何使用Socket进行网络通信,以及这种情况下遇到SocketTimeoutException的特殊性。 4. **源码分析**:深入到Java的Socket实现中,理解异常是如何被抛出的,可能涉及...

    大学生java学习心得(多篇).doc

    文档中涵盖了多个方面的知识点,包括 SOAP 协议、EJB 组件实现、Java 语言特性限制、Java 平台安全策略等。 SOAP 协议 SOAP(Simple Object Access Protocol)是一种基于 XML 的轻量级协议,用于交换结构化信息在...

    EJB Mail and News-开源

    11. SSL支持:通过SSL(Secure Socket Layer)加密通信,确保数据传输的安全性。 开源软件的性质使得EJB Mail and News具有开放源代码、自由使用和修改的特点,开发者可以根据自己的需求对其进行定制,或者贡献代码...

    817-2175-10.pdf Oracle Solaris 9 - Developer’s Guide to Enterpri

    8. **安全性**:解释如何设置EJB的安全模型,包括角色基元、认证和授权,以及与SSL(Secure Socket Layer)和TLS(Transport Layer Security)的集成。 9. **Sun ONE应用服务器配置**:介绍如何在Oracle Solaris 9...

Global site tag (gtag.js) - Google Analytics