免费注册 查看新帖 |

Chinaunix

广告
  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1452 | 回复: 0
打印 上一主题 下一主题

如何开发使用 EJB 3.0 的无状态会话 EJB [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-28 10:27 |只看该作者 |倒序浏览
如何开发使用 EJB 3.0 的无状态会话 EJB
日期:1/13/06
作者:Debu Panda

简介

使用 EJB 3.0 的无状态会话 Bean
示例 EJB 客户端

前提条件

知识准备

软件需求

符号

构建应用程序

运行应用程序

检查示例文件目录
配置环境

启动服务器

生成、编译和部署应用程序

运行应用程序

总结

简介
本示例应用程序演示了 Oracle 对使用无状态会话 EJB 的 EJB 3.0 规范的支持,并演示了 EJB 客户端中简化的 EJB 调用模型。
EJB 3.0 显著简化了 EJB 的开发,并消除了许多复杂的开发任务。例如,创建一个使用 EJB 2.1 的简单无状态 EJB 需要一个 bean 类、两个接口以及一个部署描述符。远程接口(或本地)和主接口必须分别扩展 javax.ejb.EJBObjectjavax.ejb.EJBHome 接口,而 bean 类必须实现 javax.ejb.SessionBean 接口。但在 EJB 3.0 中,以下规范导致开发得到了显著简化:

    bean 类可以是传统的 java 类 (POJO)
    EJB 接口可以是纯业务接口 (POJI)
    不再需要 EJB 主接口
    可以使用注释代替专用的部署描述符

本演示使用 HelloWorld bean 演示一个使用 EJB 3.0 的简单无状态 EJB。
注意:当 EJB 3.0 规范最终定稿时,某个 EJB 3.0 API 可能会更改,并且您可能必须更改应用程序,使其符合最终的 EJB 3.0 规范。Oracle 不能保证 OC4J 的未来版本(符合该规范的最终版本)中的所有 EJB 3.0 特性均具有向后兼容性。
使用 EJB 3.0 的无状态会话 Bean 示例
以下是 HelloWorld EJB 的远程接口。注意,这是一个纯 Java 接口并且不扩展 EJBObject
package
oracle.ejb30;
import javax.ejb.Remote;
@Remote
public interface HelloWorld
{
public void sayHello(String name);
}
bean 类是一个实现业务接口的传统 java 类:
package
oracle.ejb30;
import javax.ejb.Stateless;
@Stateless
public class HelloWorldBean implements HelloWorld
{
public void sayHello(String name)
{
System.out.println("Hello "+name +" from
first EJB3.0");
}
注意,此 bean 使用 @Stateless 注释将 bean 标记为无状态 EJB。可以使用 @Remote 注释 EJB 的远程接口和部署描述符,但并不是必需的。
示例 EJB 客户端
注意,不再需要 EJB 主接口,且不通过调用 create() 方法创建 bean 实例。相反,我们可以直接在 EJB 上调用一个方法,如以下客户端存取器所示:
Context context =
new InitialContext();
System.out.println("Looking up HelloWorld");
HelloWorld helloWorld =
(HelloWorld)context.lookup("java:comp/env/ejb/HelloWorld");
helloWorld.sayHello(args[0] );  
前提条件
您需要了解的内容
要完成此示例应用程序,应熟悉以下内容:

    EJB 2.1
    EJB 3.0

有关 EJB 3.0 的详细信息,请参阅 OTN 上的下列文档:

所需软件
本演示要求安装并正确配置了以下软件组件:

符号

    %ORACLE_HOME% - Oracle 应用服务器 10g 10.1.3 的安装目录
    %JAVA_HOME% - JDK 的安装目录
    %HOWTO_HOME% - 将此演示解压缩到的目录

构建应用程序
此应用程序的 Javadoc 位于 %HOWTO_HOME%/doc/javadoc/ 目录中。
配置文件位于 %HOWTO_HOME%/etc 目录中,其中包括部署描述符文件,如 application.xml。
运行应用程序
要在 Oracle 应用服务器 10g 10.1.3 的独立实例上运行此示例应用程序,请执行以下步骤:
1. 检查示例文件目录
  • build - 编译过程中创建的临时目录
    log - 保存编译/部署日志的临时目录
    etc - 用于封装此应用程序的所有必需文件
    lib - 保存可以部署的应用程序存档
    doc - 方法文档和 Javadoc

      javadoc - 不同源文件的 javadoc
    • how-to-ejb30-slsb.html - 此方法文档页面

    src - 演示源

      ejb - 包含示例 SLSB 代码
      client - 包含应用程序客户端代码

    2. 配置环境
    确保定义了以下环境变量:

      %ORACLE_HOME% - OC4J 的安装目录。
      %JAVA_HOME% - JDK 的安装目录。
      %PATH% - 包含 %ORACLE_HOME% /ant/bin

    3. 启动 OC4J 实例
    在进行了以上更改后使用以下命令启动 OC4J 独立版。
    >%ORACLE_HOME%/bin/oc4j -start
    如果使用 OracleAS 管理的安装,请在进行了以上更改后开始使用以下命令。
    > %ORACLE_HOME%/opmn/bin/opmnctl startall
    4. 生成、编译和部署应用程序
    OC4J 附带了 Ant 1.6.2,您必须将 PATH 环境变量设置为 $ORACLE_HOME/ant/bin。在某些操作系统上,Ant 当前并不支持使用环境变量。如果您的操作系统不支持使用变量,请修改位于 %HOWTO_HOME% 目录中的 ant-oracle.xml 文件。
    编辑 ant-oracle.properties(位于 demo 目录中)并确保将以下属性设置为正确值(以下是针对 OC4J 独立版的属性):

      oc4j.host:运行 OC4J 的主机(默认值为 localhost)
      oc4j.admin.port:RMI 端口号(默认值为 23791)
      oc4j.admin.user:admin 用户名(默认值为 oc4jadmin)
      oc4j.admin.password:admin 用户密码(默认值为 welcome)
      oc4j.binding.module:将部署的 Web 模块绑定到的网站名(默认值为 http-web-site)

    如果使用的是 OracleAS 管理的安装,则除了更改 OracleAS 安装中的受管理 OC4J 实例的 oc4j.admin.user oc4j.admin.password 以外,还应相应地更改以下属性。

      opmn.host:运行 OracleAS 的主机名/IP(默认值为 localhost)
      opmn.port:OracleAS 安装的 OPMN 请求端口(默认值为 6003)
      oc4j.instance:admin 用户名(默认值为 oc4jadmin)

    必须根据环境(例如,单个实例 OC4J 或 OPMN 管理的集群化 OC4J 实例/组)取消注释 ant-oracle.properties 中的相应 deployer.uri。
    必须在 jndi.properties 中进行更改,如适用于您的环境的 provider.url、主体和证书。如果使用的是 OracleAS 安装,则必须使用以下格式的 provider.url:opmn:ormi://localhost:6003:home/ejb30slsb
    要构建此应用程序,请从 %HOWTO_HOME% 目录中键入以下命令:
    >ant
    ejb30slsb.ear 目录中现在应具有新建的 %HOWTO_HOME%/lib
    如果编译成功,此命令还将尝试部署此应用程序。它将首先测试 OC4J 是否正在运行。
    注意,您也可以单独部署应用程序。确保定义了 %ORACLE_HOME% 环境变量,然后从 %HOWTO_HOME% 目录中键入命令:
    >ant deploy
    5. 运行应用程序
    通过提供以下命令(包括一个作为程序参数的名称)运行此示例:
    >ant run
    返回到启动 OC4J 的控制台,您将看到由 HelloWorld EJB 生成的输出。
    总结
    完成了本文档,您应该能够:

      使用 EJB 3.0 开发和部署一个简单的无状态会话 session
      在 Oracle 应用服务器 EJB 3.0 中部署并执行一个简单的无状态会话 bean



    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/86974/showart_2040136.html
  • 您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP