前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【EJB学习笔记】——建立一个简单的EJB应用

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

作者头像
DannyHoo
发布2018-09-13 12:27:50
5210
发布2018-09-13 12:27:50
举报
文章被收录于专栏:Danny的专栏Danny的专栏

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1337113

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

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

建立EJB项目—EJB_DEMO


  New—EJB Project

  核心代码:

  EJB接口FirstEjb.java

代码语言:javascript
复制
public interface FirstEjb {
    public String saySomething(String name);
}

  实现类FirstEjbBean.java

代码语言:javascript
复制
@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

代码语言:javascript
复制
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

代码语言:javascript
复制
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应用》】

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016年03月23日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档