• SSH深度历险记(两) Jboss+EJB一审


           学习感悟:每次学习新知识。通过初审会从小事做起,获得成就感。经典Hello Workd我们成功的例子奠定了门哈,呢。非常好的理解了。Ejb的核心。


           今天主要以这个小实例,来学习EJB的分布式,我们能够将接口与实现放到一台计算机上,而client能够放到还有一台机器上。当然分布式的意思非常大了(下篇博客给大家解说)。快来看实例。


    一:代码实现


    1:定义接口

    <span style="font-size:18px;"><span style="font-size:18px;">package com.bjsxt.ejb;
    
    public interface FirstEjb {
    	public String saySomething(String name);
    
    }</span></span>

    2:编写对接口的实现
    <span style="font-size:18px;"><span style="font-size:18px;">package com.bjsxt.ejb;
    
    import javax.ejb.Remote;
    import javax.ejb.Stateless;
    
    @Stateless
    @Remote
    public class FirstEjbBean implements FirstEjb {
    
    	@Override
    	public String saySomething(String name) {
    		// TODO Auto-generated method stub
    		return "你好,"+ name;
    	}
    
    }
    </span></span>

    3:编写client来通过接口调用实现

    <span style="font-size:18px;"><span style="font-size:18px;">package com.bjsxt.ejb;
    
    import javax.naming.InitialContext;
    
    public class FirstEjbElient {
    	public static void main(String[] args) throws Exception{
    		InitialContext context = new InitialContext();
    		
    		FirstEjb firstEjb = (FirstEjb)context.lookup("FirstEjbBean/remote");
    		String s = firstEjb.saySomething("張三");
    		System.out.println(s);
    				
    	}
    }
    </span></span>

    client实例化一个上下文对象,然后通过其lookup方法查找远程实现,最后调用详细的方法。

    client想要成功调用,须要将其接口引用到client的项目里。


    须要加入jndi配置文件

    java.naming.provider.url指的是接口跟实现所在机器的地址和port。

    <span style="font-size:18px;">java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
    java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
    java.naming.provider.url=localhost</span>

    client跟上面的SessionBean是两个全然独立的项目,可是它们能够进行交互。client能够调用SessionBean来完毕自己想要的操作。这正是EJB的分布式特性。


    效果实现


    二:配置

    服务端开发好后,须要将其jar包部署到jboss的热部署文件夹。

    client通过JNDI服务,可以从此拿到服务对象。



    使用JNDI来远程訪问Ejb服务,须要使用强制转换来转化成接口类型。



    所以。我们须要在Ejb的客户端引入jboss的client包。加到当前项目的环境变量中。来支持JNDI服务。

    另外client须要知道服务端的接口,不然就无法依据名字拿到服务。所以须要将服务端的接口打成jar包,并在ejb的client引入。

    总结


          实现了本文实例。大家就算是入门了,带着这些成功的学习劲头,高速继续学习,在后文我有Ejb更深入的分析。

    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    Codeforces 424C(异或)
    CodeForces
    Codeforces 424A (思维题)
    HDU 1197 Specialized Four-Digit Numbers
    ZOJ 2301 Color the Ball 线段树(区间更新+离散化)
    HDU 1106 排序
    Codefroces 831B Keyboard Layouts
    POJ 1082 Calendar Game
    HDU 多校联合 6045
    HDU 5976 Detachment
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/4756436.html
Copyright © 2020-2023  润新知