因为第一次接触EJB3.0由于第一个简单的SessionBean案例郁闷了很久,在网上也查找了一些相关的案例但是有一些一些案例讲的不够清楚,弄了很久都弄不出来第一个简单的案例,有一些例子是用JbossIDE插件做的,所以自己也安装了相关的插件,因为有一些插件下载不了总是出现不了JBossIDE界面。以前以为EJB只有一些插件才能运行的最近发现Eclipse + JBoss就可以实现EJB运用的发布。
以下是所用到开发环境做第一个简单的EJB3.0例子:
MyEclipse 5.1.1 GA
jboss-4.2.3.GA-jdk6
jdk 6.x
第一创建一个Java Project
第二把Jboss目录client所有的jar文件导入工程中
第三创建一个接口HelloWorl.java
第四创建一个远程实现类HelloWorldBean.java
package com.ejb;
import javax.ejb.Remote;
import javax.ejb.Stateless;
@Stateless
@Remote(HelloWorld.class)
public class HelloWorldBean implements HelloWorld {
public String say(String name) {
return name + "说:你好!";
}
}
第五导出jar文件,一般Jboss默认启动都是default目录下面所以导出的文件必须放在server/default/deploy目录下面,我这里是启动all 下面的starup.bat所以我把导出的jar文件放在server/all/deploy目录
把jar文件发布到服务器时候将提示发布信息,如果后台没有报出错误信息说明发布的工程没有出现错误将会提示以下信息
第六创建一个EJBClient客户工程
然后把客户工程关联EJB工程这样客户端就可以调用到服务器端接口类,就不用把EJB接口打包添加到客户端工程中编写一个Test.java类用于测试EJB
这只是用于本地测试而已,真是的工程可能会存放在不同的服务器中这就是所谓的分布式,要想获取到不同服务器上面的Bean对象必须把接口打包成jar文件提供给用户
测试类代码如下,会根据jndi找到服务器中的Bean对象,并实现其操作
package com.ejb;
import java.util.Properties;
import javax.naming.InitialContext;
import javax.naming.NamingException;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
Properties pops = new Properties();
pops.setProperty("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
pops.setProperty("java.naming.provider.url","localhost:1099");
try {
InitialContext ctx = new InitialContext(pops);
HelloWorld h = (HelloWorld) ctx.lookup("HelloWorldBean/remote");
System.out.println(h.say("徐闻人 "));
} catch (NamingException e) {
e.printStackTrace();
}
}
}
其实在测试工程根目录下面编写一个jndi.properties
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.provider.url=localhost:1099
测试代码就编写如下
try {
InitialContext ctx = new InitialContext();
HelloWorld h = (HelloWorld) ctx.lookup("HelloWorldBean/remote");
System.out.println(h.say("徐闻人 "));
} catch (NamingException e) {
e.printStackTrace();
}
}
两种方式都可以JBoss服务器会自动在的找到工程根目录下面的jndi.properties文件的
最终控制平台打印出结果为
徐闻人 说:你好!
分享到:
相关推荐
### 精通EJB3.0经典书目解析 #### 一、书籍基本信息 - **书名**:《精通企业级Java Beans (EJB) 3.0》 - **作者**:Rima Patel Sriganesh, Gerald Brose, Micah Silverman - **出版社**:Wiley Publishing, Inc. -...
在这个"Ejb3.0帮助文档包"中,我们有两个重要的文件:《ejb3.0实例教程.pdf》和《EJB3.0持久化开发手册.chm》,它们将深入讲解EJB 3.0的关键概念和实践。 1. **EJB 3.0概述** EJB 3.0主要关注的是简化编程模型,...
4. **简化接口**:不再强制要求实现EJB特定的接口,如SessionBean和EntityBean,而是允许直接继承特定的Java类。 5. **查询语言**:JPA的JPQL(Java Persistence Query Language)提供了与SQL类似的查询语句,用于...
5. **实战案例**:提供实际的业务场景,演示如何使用EJB3.0解决实际问题。 6. **错误排查与性能优化**:分享在开发和部署过程中可能遇到的问题及其解决方案,以及如何优化EJB3.0应用的性能。 通过这个教程,读者...
- **框架设计**: 提供具体的案例分析,展示如何设计一个基于EJB 3.0的轻量级应用框架。 通过以上知识点的详细解释,读者不仅能够掌握EJB 3.0的基本原理和实现细节,还能学会如何有效地利用这些技术构建高质量的企业...
EJB 3.0中的Session Bean同样受益于注解的引入,@Stateless和@Stateful分别表示无状态和有状态的session bean。无状态bean对于每个请求都创建新的实例,而有状态bean则可以保存客户端会话状态。此外,@Local和@...
**企业级JavaBeans(EJB)3.0实例教程** EJB(Enterprise JavaBeans)是Java平台上用于构建可部署在企业级服务器上的组件模型。...阅读《EJB3.0实例教程.pdf》将为你提供详尽的指导,帮助你成为熟练的EJB 3.0开发者。
### JBoss EJB3.0 教程知识点详解 #### 一、教程适用人群与目的 ...综上所述,本教程不仅提供了EJB3.0的核心技术理论,还结合了大量的实践案例,旨在帮助读者全面掌握JBoss环境下EJB3.0的开发技能。
1. **EJB组件类型**:EJB3.0包含三种主要的组件类型——会话Bean(Session Beans)、实体Bean(Entity Beans)和消息驱动Bean(Message-Driven Beans)。会话Bean用于实现业务逻辑,实体Bean代表持久化的数据,消息...
**ejb3.0详解** EJB(Enterprise JavaBeans)是Java EE平台中的核心组件,用于构建企业级应用。EJB 3.0是其第三个主要版本,它在前两个版本的基础上进行了重大改进,旨在提高开发效率,简化API,并引入了POJO...
通过学习“精通EJB3.0”这本资源,你可以了解到如何设计和实现EJB组件,包括实体Bean、会话Bean和消息驱动Bean的创建与配置。此外,还会涉及EJB与Web服务、JMS以及安全性的整合,以及在实际项目中的应用案例。 资源...
最后,教程通过一个实际案例,展示了如何利用EJB3.0构建轻量级应用框架,特别是在Web应用中如何有效利用SessionBean和Message Driven Bean。 整体而言,《最新EJB3.0教程》覆盖了EJB3.0的主要知识点,从理论到实践...
2. **会话Bean(Session Bean)**:会话Bean是EJB中处理业务逻辑的组件。EJB 3.0引入了无状态会话Bean(`@Stateless`)和有状态会话Bean(`@Stateful`)。无状态会话Bean不保存任何客户端信息,而有状态会话Bean则...
EJB实例教程与精通EJB3.0的学习资源可以帮助开发者深入理解这一技术,以下是对这两本资源的主要知识点的详细解读。 **EJB实例教程** 实例教程通常注重实践操作,通过具体的案例帮助学习者理解和掌握EJB的核心概念...
本书首先会讲解EJB的基本概念,包括实体Bean(Entity Bean)、会话Bean(Session Bean)和消息驱动Bean(Message-Driven Bean)。实体Bean主要用于持久化数据,会话Bean则处理业务逻辑,消息驱动Bean则用于异步处理...
2. **会话Bean(Session Beans)**:会话Bean用于封装业务逻辑,EJB3.0提供了无状态会话Bean和有状态会话Bean两种类型。无状态会话Bean适用于短暂的、非事务性的交互,而有状态会话Bean可以保存客户端的状态,适合...