首页 > 其他 > 详细

菜鸟学EJB(一)——第一个实例

时间:2014-04-10 07:55:23      阅读:453      评论:0      收藏:0      [点我收藏+]

EJB用了那么长时间了,从来没写过关于它的东西,挺对不住它的。今天先写一个简单的小实例,虽然小但是却能体现出EJB的核心——分布式。我们可以将业务逻辑的接口跟实现部署到一台机器上,将调用它们的客户端部署到另一台机器上。至于为什么要用分布式,今天不做讨论,以后再细说。


先来看接口:

bubuko.com,布布扣
package com.tjb.ejb;

public interface MyEjb {
    String helloEjb ();
}
bubuko.com,布布扣

 


接下来是对接口的具体实现:

bubuko.com,布布扣
package com.tjb.ejb;

import javax.ejb.Remote;
import javax.ejb.Stateless;
import javax.jws.WebMethod;
import javax.jws.WebService;

@Stateless
@Remote
@WebService
public class MyEjbBean implements MyEjb {

    
    public String helloEjb() {
        return "Hello EJB";
    }

}
bubuko.com,布布扣

 


然后编写一个客户端来通过接口调用我们的实现:

bubuko.com,布布扣
package com.tgb.ejb;

import javax.naming.InitialContext;
import javax.naming.NamingException;

import com.tjb.ejb.MyEjb;

public class MyEjbClient {


    public static void main(String[] args) throws NamingException {
        
        InitialContext ctx = new InitialContext();
        MyEjb ejb = (MyEjb) ctx.lookup("MyEjbBean/remote");
        String hello = ejb.helloEjb();
        System.out.println(hello);
        
    }

}
bubuko.com,布布扣

 


客户端实例化一个上下文对象,然后通过其lookup方法查找远程实现,最后调用具体的方法。客户端想要成功调用,需要将其接口引用到客户端的项目里。


客户端需要建一个名为jndi.properties的配置文件:

bubuko.com,布布扣
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=192.168.24.27:1099
bubuko.com,布布扣

 

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


客户端跟上面的SessionBean是两个完全独立的项目,但是它们可以进行交互,客户端可以调用SessionBean来完成自己想要的操作,这正是EJB的分布式特性。可以将程序部署到不同的服务器。今天就到这里,以后再说分布式有什么优点。



菜鸟学EJB(一)——第一个实例,布布扣,bubuko.com

菜鸟学EJB(一)——第一个实例

原文:http://www.cnblogs.com/liushuijinger/p/3655583.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!