`

转载:ejb 集群@Clustered的简单例子

 
阅读更多

EJB3.0+JBOSS4.0.5GA集群

服务器端代码:

HelloWorld.java:

1import javax.ejb.Remote;
2
3@Remote
4publicinterface HelloWorld {
5public String sayHello(String s);
6}

7


HelloWorldBean.java

1import javax.ejb.Stateless;
2
3import org.jboss.annotation.ejb.Clustered;
4
5import cn.HelloWorld;
6
7@Stateless
8@Clustered
9publicclass HelloWorldBean implements HelloWorld {
10
11public String sayHello(String s) {
12 System.out.println(s);
13return s;
14 }

15
16}

 

上面第8行的@Clustered是必须的,因为我们需要使用Stateless Bean的集群功能。

分别在IP地址为:192.168.1.88和192.168.1.99机器上面安装JBOSS4.0.5GA,JBOSS4.0.5可以去下载文件名为jboss-installer-1.2.0.GA.jar的安装,安装的时候选择ejb3-clustered,再下面有一步时选择Advance,再在Name输入框输入all,其它默认就可以了。

两台机器上面都安装好之后,分别在两台机器上面启动jboss,启动的时候需要加参数:如IP为192.168.1.88的机器启动JBOSS,则为:run -c all -b 192.168.1.88

当两台机器的JBOSS都正常启动后,将上面的Stateless Bean打包成jar包,发布到其中一台%JBOSS_HOME%\server\all\farm目录下面,这样集群中的其它结点将自动发布这个jar包。

当发布完成之后,我们编写客户端:

Client.java

1import java.util.Properties;
2
3import javax.naming.InitialContext;
4import javax.naming.NamingException;
5
6publicclass Client {
7
8publicstaticvoid main(String[] args) {
9 Properties prop =new Properties();
10 prop.setProperty("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
12 prop.setProperty("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");
14 prop.setProperty("java.naming.provider.url","192.168.1.88:1099,192.168.1.99:1099");
16
17try{
18 InitialContext ict =new InitialContext(prop);
19 HelloWorld helloWorld = (HelloWorld) ict
20 .lookup("HelloWorldBean/remote");
21for (int i =0; i <10; i++) {
22 helloWorld.sayHello("HelloWorld");
23 }

24 }
catch (NamingException e) {
25 e.printStackTrace();
26 }

27 }

28}

29

 

上面这个客户端配置了JBOSS服务器IP地址及端口,调用远程接口的HelloWorldBean,并连续调用10次sayHello方法。在JBOSS控制台上面可以看到打印出HelloWorld。


程序运行结果发现:在192.168.1.88 的JBOSS控制台上面打印出4个HelloWorld,另一个JBOSS控制台上面则打印出6个HelloWorld。加起来正好10个HelloWorld,可以发现两台JBOSS已经实现了负载均衡。

集群中的任何一个结点挂掉之后,程序都可以正常运行

 

转载自:http://www.blogjava.net/ahanflw/archive/2008/05/22/202260.html

分享到:
评论

相关推荐

    EJB集群EJB集群资料

    在EJB 3.0中,通过在Bean类上添加`@Stateless`和`@Clustered`注解,可以声明该Bean是无状态并且支持集群的。`@Clustered`注解是关键,它告诉JBOSS服务器要将此Bean部署为集群的一部分。 集群配置涉及到多个JBOSS...

    jbss 7.1.2 EJB 集群例子

    【jbss 7.1.2 EJB 集群例子】是一个关于使用Jboss应用服务器7.1.2版本创建和配置EJB(Enterprise JavaBeans)集群的实践教程。在分布式环境中,EJB集群可以提供高可用性、可扩展性和负载均衡,使得多个服务器节点...

    EJB Dev 1: EJB入门例子

    **EJB Dev 1: EJB入门例子** Enterprise JavaBeans(EJB)是Java平台企业版(Java EE)的一部分,用于构建可扩展、安全且事务处理能力强大的分布式应用程序。EJB提供了一种标准的方式来实现业务逻辑,使得开发人员...

    java源码:EJB中JNDI的使用源码例子.zip

    总之,EJB和JNDI是Java EE开发中不可或缺的部分,它们的结合使用使得分布式应用程序的构建变得更加简单和高效。通过这个源码例子,开发者不仅可以学习到EJB的基本用法,还能掌握JNDI在服务查找中的作用,从而提升...

    北邮 分布式计算课件 教师:邹华 第四章:ejb-1

    【分布式计算环境与EJB简介】 分布式计算环境是现代企业级应用系统中常见的架构模式,它允许多个计算节点通过网络协同工作,处理大规模、复杂的问题。北京邮电大学的分布式计算课程由邹华教授主讲,深入探讨了这一...

    EJB原理图:EJB工作原理

    ### EJB原理图详解 #### 一、EJB工作原理概览 EJB(Enterprise JavaBeans)是Java EE平台中的一个重要组成部分,它主要用于构建企业级应用。EJB提供了一种面向服务的方式,允许开发者专注于业务逻辑,而将复杂的...

    一个ejb学习时的简单例子

    在这个 ejb 学习的例子中,我们将深入探讨实体Bean(Entity Bean)和会话Bean(Session Bean),以及它们如何与前端交互。 1. **实体Bean(Entity Bean)**: 实体Bean代表应用程序中的持久数据,通常映射到数据库...

    EJB3.0完整代码例子

    3. **持久性管理(Persistence Management)**:EJB3.0集成了JPA(Java Persistence API),使得数据持久化变得更加简单。通过@Entity和@Table等注解,开发者可以直接将Java类映射到数据库表,而无需编写SQL。 4. *...

    Mastering EJB 3rdEd.pdf

    - **Java Persistence API (JPA)**:EJB 3.0集成了JPA,使得对象关系映射(ORM)更为简单。 - **无状态会话Bean**:通过`@Stateless`注解,开发者可以轻松创建无状态的服务组件。 - **有状态会话Bean**:使用`@...

    ejb3.0实例教程的例子

    EJB(Enterprise JavaBeans)是Java EE(Enterprise Edition)平台中的核心组件,主要用于构建企业级分布式应用...通过实践这些例子,你可以更好地理解和运用EJB 3.0在实际项目中的优势,提升开发企业级应用的能力。

    ejb-cluster-example:JBoss EJB 集群示例

    ejb 集群示例 JBoss EJB 集群示例 安装 在域模式下运行干净的 JBoss EAP 6.3 ./jboss-eap-6.3/bin/domain.sh 运行安装脚本 ./jboss-eap-6.3/bin/jboss-cli.sh -c --file=setup.cli 在服务器上部署文件ejb-cluster...

    ejb3的几个例子,谢谢

    本压缩包中的例子应该可以帮助我们更深入地理解EJB 3.0的核心概念。 1. **注解驱动的bean定义**:在EJB 3.0之前,开发者需要创建XML配置文件来定义bean的行为。EJB 3.0引入了注解,允许开发者直接在类和方法上添加...

    Java EJB自定义错误信息的例子.rar

    Java EJB自定义错误信息的例子,提示信息本地化的一个测试,这个代码触发调用一个状态Bean中的方法,定义了CountBean接口,调用了每一个EJB对象的count(),保证Bean正常被激活和钝化,同时还使用了累加器,以对话...

    EJB3.0增加的小例子

    EJB 3.0引入了JPA(Java Persistence API),使得实体bean的管理变得更加简单。通过`@Entity`注解,一个类可以声明为数据库表的映射,而`@Id`注解用于标识主键。此外,JPA还提供了`@GeneratedValue`来自动生成主键...

    大量EJB3文档(基本包含EJB所有技术资料)

    EJB3,全称Enterprise JavaBeans 3.0,是Java EE平台中企业级组件模型的一个重要组成部分。这个压缩包文件包含了大量的EJB3技术资料,对于初学者和经验丰富的工程师来说,都是一个宝贵的资源库。以下是这些文档可能...

    EJB3入门例子

    2. **持久化框架(Persistence Framework)**:EJB3引入了JSR-220规范的JPA(Java Persistence API),使得对象关系映射变得更加简单。通过`@Entity`、`@Table`、`@Id`等注解,开发者可以直接在Java类上定义数据模型...

    北邮 分布式计算课件 教师:邹华 第四章:ejb-2

    【分布式计算】与【EJB-2】:深入理解企业级JavaBeans 分布式计算环境是现代软件开发中的重要组成部分,特别是在大型企业应用中,它允许跨网络的不同计算资源协同工作,提高系统的可扩展性和可用性。北京邮电大学的...

    ejb3.0实例教程及源码

    EJB(Enterprise JavaBeans)是Java EE平台中的核心组件,用于构建可扩展、安全和事务处理的企业级应用程序。EJB3.0是EJB规范的一个重要版本,它引入了许多重大改进,极大地简化了开发过程,使得EJB更加易用且高效。...

    电子教程:EJB开发

    "实战EJB"可能包含一系列实际项目案例,涵盖了从简单会话Bean到复杂业务场景的实体Bean应用,以及如何利用消息驱动Bean进行异步处理。这些案例将帮助学习者将理论知识应用于实际开发环境中,提高解决企业级问题的...

    EJB简单例子

    在本“EJB简单例子”中,我们将探讨EJB的基本概念、类型以及如何创建和运行一个简单的EJB应用。 1. **EJB组件类型** - **会话Bean(Session Beans)**:代表客户端的临时会话,提供业务逻辑服务。分为无状态会话...

Global site tag (gtag.js) - Google Analytics