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

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

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


18.png


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

建立EJB项目—EJB_DEMO



  New—EJB Project


19.png


  核心代码:


  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

20.png


 客户端既然调用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并且输出信息了呢?


21.png



相关文章
|
8月前
|
Java 程序员 数据库连接
一.Spring框架基础
一.Spring框架基础
70 0
|
开发框架 Java 中间件
【中间件】——EJB学习总结
公共服务框架:支持大量的、由应用服务器提供的系统级服务
|
消息中间件 缓存 开发框架
【Spring框架一】——Spring框架简介
【Spring框架一】——Spring框架简介
146 0
|
XML 运维 负载均衡
|
消息中间件 Java 应用服务中间件
【EJB学习笔记】——JMS和消息驱动Bean
 认识消息驱动Bean之前,先了解一下JMS。
【EJB学习笔记】——JMS和消息驱动Bean
|
Java 关系型数据库 MySQL
【EJB学习笔记】——实体Bean
  实体Bean跟普通的Java实体并无多大差异,在EJB中的实体Bean用@Entity注解定义。   实体Bean开发步骤如下:
【EJB学习笔记】——实体Bean
|
前端开发 Java 数据库
java中的mvc和三层结构究竟是什么关系
一件事,要知其然往往很简单,要知其所以然通常不是那么容易,就如最近重新巩固spring的过程中,就觉得还有许多问题其实并不是十分明了。 屈指一算,手头上做过的正式项目也有了四五六七个了,不管用的数据库和其他一些细节上的技术如何,总的来说大的框架结构都是差不多的。 说白了,也就是mvc和三层结构。
4878 0
|
Java 程序员 容器
选择使用Spring框架的原因(Spring框架为企业级开发带来的好处有哪些)?
可以从以下几个方面作答: 非侵入式:支持基于POJO的编程模式,不强制性的要求实现Spring框架中的接口或继承Spring框架中的类。 IoC容器:IoC容器帮助应用程序管理对象以及对象之间的依赖关系,对象之间的依赖关系如果发生了改变只需要修改配置文件而不是修改代码,因为代码的修改可能意味着项目的重新构建和完整的回归测试。
1072 0
|
XML 关系型数据库 Java
|
IDE Java 开发工具