【EJB学习笔记】——建立一个简单的EJB应用

  这里创建一个简单的EJB应用,结构如下:

这里写图片描述

  EJB_DEMO项目类型为EJB Project,是需要部署到JBoss上的EJB应用。EJB_DEMO_CLIENT项目类型为普通的Java Project,是用来模仿调用EJB的远程客户端。


建立EJB项目—EJB_DEMO

  New—EJB Project

这里写图片描述

  核心代码:

  EJB接口FirstEjb.java

public interface FirstEjb {
	public String saySomething(String name);
}

  实现类FirstEjbBean.java

@Stateless
@Remote
public class FirstEjbBean implements FirstEjb {
	public String saySomething(String name) {
		return "恭喜您:"+name+",您的EJB应用创建成功了!";
	}
}

  这不就是个普通的 类吗?EJB就是JavaBean,只不过它是企业级的(JavaBeanEnterprise JavaBean),EJB分为三种Bean,即会话Bean(Session Bean)、实体Bean(Entity Bean)、消息驱动Bean(Message Driven Bean),会话Bean又分为有状态的会话Bean和无状态的会话Bean,这里不再多说,后面会一一介绍。

  这个Demo中,起键作用的就是类头那两个注解:@Stateless定义这个EJB是无状态的会话Bean;@Remote定义这个EJB所实现的接口是用来被远程调用的。

  至此,服务端的EJB应用就建立好了,跟部署普通的java web项目一样,可以把它部署到JBoss上了。



建立客户端—EJB_DEMO_CLIENT

  New—Java Project

这里写图片描述

  客户端既然调用EJB,肯定需要它的接口,所以EJB_DEMO_CLIENT需要引用由FirstEjb.java所打的jar包,为了开发简便,也可以直接让EJB_DEMO_CLIENT引用EJB_DEMO项目,如果客户端不是运行在EJB容器中(如JBoss),则需要引用JBoss下的相关jar包(如果用的服务器是JBoss5或JBoss6的话,则引用JBoss安装目录下client中的jar包),此外,客户端还必须引用jnp-client.jar。

  建立客户端测试类FirstEjbClient.java

public class FirstEjbClient {
	public static void main(String[] args) throws Exception {
		InitialContext ctx = new InitialContext();
		FirstEjb ejb = (FirstEjb)ctx.lookup("FirstEjbBean/remote");
		String s = ejb.saySomething("Danny");
		System.out.println(s);
	}
}

  InitialContext是javax.naming包下的一个类,可以看做是一个工厂或是Spring中的BeanFactory,用来实现JNDI,所以,客户端还需要一个配置文件jndi.properties,用来配置jndi的信息。

  jndi.properties

java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=localhost

  这时,一个简单的EJB应用+EJB客户端就完成了。在JBoss启动的情况下,运行一下客户端,是不是成功调用EJB并且输出信息了呢?

这里写图片描述


【 转载请注明出处——胡玉洋《EJB——建立一个简单的EJB应用》

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值