Jboss EJB 3.0--Stateless Beans

Jboss EJB 3.0

Stateless Beans

 

Calculator.java             // 计算器的接口:加、减

package org.jboss.tutorial.stateless.bean;

 

public interface Calculator

{

   int add(int x, int y);

 

   int subtract(int x, int y);

}

 

 

CalculatorBean.java

package org.jboss.tutorial.stateless.bean;

 

import javax.ejb.Stateless;

 

@Stateless           //标记CalculatorBean 为 stateless bean,为本地和远程接口的实现

public class CalculatorBean implements CalculatorRemote, CalculatorLocal

{

   public int add(int x, int y)

   {

      return x + y;

   }

 

   public int subtract(int x, int y)

   {

      return x - y;

   }

}

 

 

CalculatorLocal.java

package org.jboss.tutorial.stateless.bean;

 

import javax.ejb.Local;

 

@Local                    //标记为本地接口,继承了计算器接口

public interface CalculatorLocal extends Calculator

{

}

 

CalculatorRemote.java

package org.jboss.tutorial.stateless.bean;

 

import javax.ejb.Remote;

 

@Remote               //标记为远程接口,继承了计算器接口

public interface CalculatorRemote extends Calculator

{

}

 

客户端

 

Client.java

package org.jboss.tutorial.stateless.client;

 

import org.jboss.tutorial.stateless.bean.Calculator;

import org.jboss.tutorial.stateless.bean.CalculatorRemote;

 

import javax.naming.InitialContext;

 

public class Client

{

   public static void main(String[] args) throws Exception

   {

      InitialContext ctx = new InitialContext();

      //查找远程接口

      Calculator calculator = (Calculator) ctx.lookup(CalculatorRemote.class.getName());

                           

      System.out.println("1 + 1 = " + calculator.add(1, 1));

      System.out.println("1 - 1 = " + calculator.subtract(1, 1));

   }

}

 

 

 

 

 

 

 

*****************************简化版********************************

 

只需三个程序即可实现StatelessBean功能。

Calculator.java

package org.jboss.tutorial.stateless.bean;

 

import javax.ejb.Remote;

 

@Remote             //直接将计算器标记为远程接口

public interface Calculator

{

   int add(int x, int y);

 

   int subtract(int x, int y);

}

 

 

 

CalculatorBean.java

package org.jboss.tutorial.stateless.bean;

 

import javax.ejb.Stateless;

 

@Stateless

public class CalculatorBean implements Calculator        //这里实现了计算器接口

{

   public int add(int x, int y)

   {

      return x + y;

   }

 

   public int subtract(int x, int y)

   {

      return x - y;

   }

}

 

 

客户端:

 

Client.java

package org.jboss.tutorial.stateless.client;

 

import org.jboss.tutorial.stateless.bean.Calculator;

import javax.naming.InitialContext;

 

public class Client

{

   public static void main(String[] args) throws Exception

   {

      InitialContext ctx = new InitialContext();

      Calculator calculator = (Calculator) ctx.lookup(Calculator.class.getName());

                                     //只要查找标记为remote的接口就行了

      System.out.println("1 + 1 = " + calculator.add(1, 1));

      System.out.println("1 - 1 = " + calculator.subtract(1, 1));

   }

}

 

 

这里附上log4j.properties 在jboss-EJB-3.0_Preview_5.zip 里面没有这个老是显示缺少appender

 

log4j.properties

log4j.appender.R=org.apache.log4j.RollingFileAppender

 

log4j.appender.R.File=record.log

 

log4j.appender.R.layout=org.apache.log4j.PatternLayout

 

log4j.appender.R.layout.ConversionPattern=%p  %d{hh:mm:ss} %t %c{1} -%m%n

 

log4j.appender.R.MaxBackupIndex=1

 

log4j.appender.R.MaxFileSize=100KB

 

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

 

log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) -%m%n

 

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

 

log4j.rootLogger=stdout,R

 

 

 

运行:参考installing.html

Windows下

打开命令提示符cmd,到  jboss_home/bin

 Run.bat –c all

用ant

先build后run 就行了。

 

 

讨论:

简化版是看到jboss-EJB-3.0_Preview_5.zip里面的statefull源码而改写的,在EJB spe 3.0说好像是删除了home这个接口,我觉得简化很多接口更方面,有效的开发j2ee application

时间: 2024-12-08 08:14:03

Jboss EJB 3.0--Stateless Beans的相关文章

用EJB 3.0开发企业级Bean组件初体验

阅读提要 EJB 3.0规范的最终稿已经提交到JCP,如果不出意外EJB3.0将在2006年正式发布.本文作为探讨EJB 3.0公共草案三系列中的第一篇,将解释EJB 3.0和企业Bean组件的基本概念:另外,你还学习到怎样使用JBoss和Maven来开发基于EJB 3.0的企业级bean组件. 尽管EJB 3.0规范还没有正式发行,但是它已经在Java开发社群中引起广泛兴趣--无论是对其拥护者还是其竞争对手.所有人都承认迫切需要找到更有生产效率的软件开发方法:如今,他们的争论集中于在EJB 3

EJB 3.0+Beehive开发客户反馈系统

设计目标 客户反馈系统作为公司与客户交流的平台,几乎为所有的企业所运用,最近,公司让我负责客户反馈系统的开发.由于,公司与国外客户的业务需要,该系统必须实现中,英,日三国语言的切换(国际化要求).在接到任务之后,我便决定尝试使用目前开源社区比较流行的Apache Beehive(蜂巢)和下一代EJB,EJB3.0等技术来实现这个系统. 开发环境 选择平台,开发工具 为了支持EJB3.0和Beehive,我们选择JBoss4.0.3应用服务器作为运行平台,它也是目前唯一提供EJB3.0容器的应用服

前进:从EJB 2.1到EJB 3.0

在开始讨论怎样从EJB 2.1迁移到EJB 3.0之前,有必要先了解一下迁移之后将会得到什么:主要来说,EJB 3.0减少了在创建EJB时所需的类.接口.部署描述符的数量.EJB 3.0通过用纯旧式Java对象(POJO)取代抽象bean类,用纯旧式Java接口(POJI)取代组件与主接口(Component & Home),简化了EJB的开发过程,在此,后者是可选项--你不必全部包含进它们. 部署描述符--ejb-jar.xml--由其指定了EJB名.bean对象名.接口.查找者方法.容器管理

jboss 6.1.0 final 启动报错

问题描述 jboss 6.1.0 final 启动报错 13:14:41,967 INFO [STDOUT] 最底层持久化类com.zhl.ejb.EjbDataBase 的 executeQuery 方法出错,出错的行数为: 394 行.执行SQL语句异常,具体的错误信息是:Unknown column 'c.prequery' in 'where clause' 13:14:41,967 ERROR [STDERR] javax.ejb.EJBException: com.mysql.jdb

利用EJB 3.0的JPA设计企业应用程序

本文将介绍Java Platform,Enterprise Edition(Java EE 5)的一种设计方法 ,它利用了Enterprise JavaBeans(EJB) 3.0 新的Java Persistence API (JPA) .JPA 提供了一种标准的对象关系映射解决方案,该解决方案避免了依赖第三方 框架(如 Hibernate).您将看到示例应用程序的详细内容,其中验证了本方法 并阐明关键设计决定. 期待已久的下一版本Java EE 5即将发布.Java EE 5许多新功能都包含

POJO应用架构:Spring与EJB 3.0的对比

架构 爱因斯坦曾经说过:"每件事物都应该尽可能简单,而不是更简单".的确,对科学真理的追求都是为了简化理论的根本假设,这样我们才能处理真正麻烦的问题.企业级软件的开发也是这样的. 简化企业级软件开发的关键是提供一个隐藏了复杂性(例如事务.安全性和永续性)的应用框架.良好设计的框架组件可以提升代码的重复使用(reuse)能力,提高开发效率,从而得到更好的软件质量.但是,目前J2EE 1.4中的EJB 2.1框架组件被人们普遍认为是设计较差的和过于复杂的.Java开发者对EJB 2.1很不

EJB 3.0规范全新体验

规范 引言 期待以久的EJB3.0规范在最近发布了它的初稿.在本文中将对新的规范进行一个概要性的介绍,包括新增的元数据支持,EJBQL的修改,实体Bean模型访问bean上下文的新方法和运行时环境等等.作者还讨论了EJB在未来要作出的调整以及EJB3.0与其他开发规范之间的关系. 开始 无论如何由于EJB的复杂性使之在J2EE架构中的表现一直不是很好.EJB大概是J2EE架构中唯一一个没有兑现其能够简单开发并提高生产力的组建.EJB3.0规范正尝试在这方面作出努力以减轻其开发的复杂性.EJB3.

EJB 3.0+Aspect实现声明性编程初步

编程 提要 本文将与你一同探讨怎样把注解和方面的威力联合起来,以与EJB 3.0兼容的方式为企业实现提供声明性服务,而在同时仍然提供容器的独立性. 一. 引言 在我们共同寻求进一步提高软件开发生产性能的方法的过程中,我们-作为Java社团成员-一般都转向J2EE来提供针对企业开发中更具挑战性的技术问题如分布式事务管理.并发性和对象分布等的解决方案.其背后的指导思想-这些复杂的企业服务能被应用程序服务器供应商所实现并能为商业开发者所平衡-的确是一种很好的思想.J2EE,具体地说是EJB,已成功地提

EJB 3.0是Hibernate的克隆吗?

摘要 Sun的EJB 3.0规范正处于其最后的"冲刺"阶段,许多公司都在为遵循这一规范而忙碌着.这个EJB规范最新版本所提供的众多优点中比较突出的当属其数据库功能,但是一些开发人员感到,这个规范仅仅是Hibernate持久性存储引擎的一个"克隆"版.真的吗?本文正是想讨论这一问题. 实践证明,Hibernate是针对于Java语言所创建的最优秀的持久化存储引擎之一.至今,我还清晰地记得第一次使用Hibernate工作的情景.当时,我们已经有了一种现成的持久化存储引擎