您的位置:首页 > 其它

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

2015-08-25 08:02 351 查看
学习感悟:每次学习新知识。通过初审会从小事做起,获得成就感。经典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更深入的分析。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: