Eclipse整合JBoss开发EJB3.0
### Eclipse 整合 JBoss 开发 EJB 3.0 #### 一、EJB 3.0 简介及重要性 EJB (Enterprise JavaBeans) 是 J2EE 架构中的一个核心组件,它提供了一种用于构建分布式企业级应用的方法。自 EJB 3.0 的推出以来,其设计思想发生了根本性的变化,极大地简化了开发流程。EJB 3.0 通过引入注解和依赖注入等特性,使得开发者能够更加专注于业务逻辑的编写,而无需过多关注底层技术细节。 #### 二、EJB 3.0 的主要特点 - **注解的使用**:EJB 3.0 允许开发者通过注解来声明组件的行为,这大大减少了 XML 配置文件的数量,提高了开发效率。 - **简化了会话 Bean 的实现**:EJB 3.0 引入了 `@Stateless` 和 `@Stateful` 注解,使开发者能够轻松地定义无状态或有状态会话 Bean。 - **远程接口的简化**:在 EJB 3.0 中,开发者可以通过 `@Remote` 注解来定义远程接口,从而简化了接口的声明。 - **本地接口的支持**:EJB 3.0 支持本地接口,使得开发者可以在同一应用服务器内部进行更高效的服务调用。 - **实体 Bean 的简化**:EJB 3.0 使用 Java Persistence API (JPA) 来替代原来的实体 Bean 模型,使得实体管理变得更加简单。 - **与 ORM 的集成**:EJB 3.0 可以与诸如 Hibernate 这样的 ORM 工具集成,进一步简化了数据访问层的开发。 #### 三、使用 Eclipse 和 JBoss 开发 EJB 3.0 示例 为了更好地理解如何在 Eclipse 中利用 JBoss 开发 EJB 3.0 应用,下面通过一个简单的示例来进行讲解。 ##### 1. 创建 EJB 接口和实现类 创建一个接口 `FirstEjb`,定义了一个方法 `hello()`: ```java package com.ejb; public interface FirstEjb { public String hello(); } ``` 接着创建一个实现类 `FirstBean` 实现上面定义的接口,并添加必要的注解: ```java package com.ejb; import javax.ejb.Stateless; import javax.ejb.Remote; @Stateless @Remote({FirstEjb.class}) public class FirstBean implements FirstEjb { public String hello() { return "Hello EJB!"; } } ``` 这里使用了 `@Stateless` 注解来声明这是一个无状态会话 Bean,并使用 `@Remote` 注解指定了该 Bean 的远程接口。 ##### 2. 编译并打包 EJB 编译完成后,将 `FirstBean` 类和其他依赖的 Jar 文件(例如 jboss-ejb3x.jar)一起打包成一个 JAR 文件,命名为 TestEjb.jar。 ##### 3. 创建 Web 应用 创建一个名为 `MyTestEjb` 的 Web 应用项目,在项目的 `src` 目录下创建一个 JSP 页面 `MyJsp.jsp`。在这个页面中,使用 JNDI 查找并调用 EJB 的 `hello` 方法: ```jsp <%@ page contentType="text/html;charset=GBK" %> <%@ page import="com.ejb.*, javax.naming.*, java.util.Properties" %> <% Properties prop = new Properties(); prop.put("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory"); prop.put("java.naming.provider.url", "localhost:1099"); prop.put("java.naming.factory.url.pkgs", "org.jboss.naming"); InitialContext ctx = null; try { ctx = new InitialContext(prop); FirstEjb helloWorld = (FirstEjb) ctx.lookup("java:global/MyTestEjb/TestEjb/FirstBean!com.ejb.FirstEjb"); out.println(helloWorld.hello()); } catch (NamingException e) { out.println(e.getMessage()); } %> ``` 注意:这里的 JNDI 查找路径 `"java:global/MyTestEjb/TestEjb/FirstBean!com.ejb.FirstEjb"` 中包含了 Web 应用名、EJB JAR 名以及 EJB 的完整限定名。 ##### 4. 部署应用到 JBoss 将编译好的 TestEjb.jar 文件和 MyTestEjb.war 文件部署到 JBoss 的 `server/default/deploy` 目录下。 ##### 5. 测试应用 启动 JBoss 服务器,然后通过浏览器访问 `http://localhost:8080/MyTestEjb/MyJsp.jsp`,可以看到页面显示了 "Hello EJB!" 的结果,表示 EJB 被成功调用。 #### 四、总结 通过上述步骤,我们不仅了解了 EJB 3.0 的基本概念及其与早期版本的区别,还学习了如何在 Eclipse 中整合 JBoss 来开发和部署一个简单的 EJB 3.0 应用。这种集成开发方式大大简化了开发过程,提高了开发效率,同时也为开发者提供了更多灵活的选择。
EJB的复杂性使之在J2EE架构中的表现一直不是很好。EJB大概是J2EE架构中唯一一个没有兑现其能够简单开发并提高生产力的组建。EJB3.0规范正尝试在这方面作出努力以减轻其开发的复杂性。EJB3.0减轻了开发人员进行底层开发的工作量,它取消或最小化了很多(以前这些是必须实现)回调方法的实现,并且降低了实体Bean及OR映射模型的复杂性。
EJB3.0中两个重要的变更分别是:使用了Java5中的程序注释工具和基于Hibernate的OR映射模型。我们先来试试吧,感受一下
首先创建一个名为HelloEJB的Java 工程,在工程的Library选项中添加外部Jar,将jboss-ejb3x.jar添加到工程中来,单击完成
给工程添加一个接口文件 FirstEJB.java,详细代码如下:
package com.ejb;
public interface FirstEjb {
public String hello();
}
保存。
再添加一个类文件,FirstBean.java并实现刚创建的接口,具体代码如下:
package com.ejb;
import javax.ejb.;
@Stateless
@Remote({FirstEjb.class})
public class FirstBean implements FirstEjb {
public String hello() {
return hello;
}
}
在这个文件中,我们导入了javax.ejb.,并且添加了两行特殊的注释,
- xiaobao_success2011-12-15基本步骤都在,就是描述的太简单了点。。。
- 神之始鬼之终2013-04-25东西下载了,但是最后没有用
- 粉丝: 0
- 资源: 33
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助