`
daodan988
  • 浏览: 30617 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

EJB3.0与JBOSS4.0.4GA集群部署实战(二)

阅读更多
环境
MyEclipse5.5
JBoss4.0.4
测试目的:群集EJB3
首先我门先启动JBOSS.下面我用%JBOSS%来代替JBOSS的跟目录

在%JBOSS%\bin目录下先创建一个RUN.BAT的快捷方式然后,鼠标右击属性给新做的快捷方式加2个参数第1个参数是-C ALL 目的是让他启动ALL服务,第2个参数是-B 192.168.0.60都开出来了把是本机IP只有加了IP在可以让他被在局域内部被访问到.我做的是3台计算机的群集,所以3太机子上的JBOSS都的这么写注意写对IP.然后启动JBOSS OK环境就算OK了然后开始写EJB3


写远程接口

public interface HelloRemote extends Serializable {

public String getString(int i);

然后写本地接口

@Stateless
@Clustered     //EJB3群集的标签
@Remote(HelloRemote.class)
public class HelloRemoteService implements HelloRemote {

public String getString(int i) {
 
    System.out.println("我被执行了第"+i+"次");
 
 
   return null;
}

}

EJB写的很简单就是在服务器上打一句话而已,完了将EJB3打成JAR包部署到
%JBOSS%\server\all\farm目录下,注意在这个目录发布完后,其他机子上同时会响应及其他机子上也会发布完成这个JAR包.下面开始运行这个EJB,当然要重新在局域网内找一台机子做客户端调用.
首先在那台机子上将刚才的JAR包导入项目中完了写测试代码
Public class EJBFactory {
   
    public static Object getEJB(String jndipath) {
        try {
            Properties props = new Properties();
           
            props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
            props.setProperty("java.naming.provider.url", "192.168.0.149:1099,192.168.0.60,192.168.0.51:1099");
            props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces");
            props.setProperty("jnp.disableDiscovery", "true");
//        
//            props.setProperty("java.naming.factory.initial", "com.sun.enterprise.naming.SerialInitContextFactory");
//            props.setProperty("java.naming.factory.url.pkgs", "com.sun.enterprise.naming");
//            props.setProperty("java.naming.provider.url", "192.168.0.251:3700");
//            props.setProperty("java.naming.factory.state", "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");
//          
            InitialContext ctx = new InitialContext(props);
            return ctx.lookup(jndipath);
        } catch (NamingException e) {
            e.printStackTrace();
        }
        return null;
    }
}
看清楚我写了3个IP地址,这样做的好处是随便那个机子挂掉其他机子一样可以运行
测试代码

public class Test {
public static void main(String[] args) {

HelloRemote helloRemote =(HelloRemote)EJBFactory.getEJB("HelloRemoteService/remote");
for(int i=0;i<10;i++){
   helloRemote.getString(i);
}
}
}
运行测试代码我门可以发现在3台服务器上他会打印出结果.这是JBOSS自己的负载平衡功能帮助我门实现的.

在测试过程中,我遇到很多问题,主要是客户端的jar包引用问题
1.客户端的jar包包括:
jboss-aop-jdk50.jar
jboss-aspect-library-jkd50.jar
jboss-ejb3-client.jar
jboss-client.jar
aopalliance.jar
2.服务端需要ejb-3.0-api.jar这个jar包
3.要确保你的jboss-4.0.4.GA服务器安装了jboss-EJB-3.0_RC9-FD这个补丁包,以便jboss服务器支持集群功能.当在多台机器上同时启动jboss服务时,在其中一台机器上将包含有EJB集群功能的无会话Bean的jar包放入到farm目录下,其他机器会自动同步拥有此jar包.
4.如果运行过程中只有一台机器打印出结果,而其他机器均无反应,则可能是jboss集群功能的配置问题,
修改jboss-4.0.4.GA\server\all\deploy\cluster-service.xml配置文件中的PartitionConfig属性配置,默认为udp方式,将其改为tcp/ip方式,如下:
   <Config>
            <TCP bind_addr="localhost" start_port="7800" loopback="true"/>
            <TCPPING initial_hosts="localhost[7800],localhost[7800]" port_range="3" timeout="3500"
               num_initial_members="3" up_thread="true" down_thread="true"/>
            <MERGE2 min_interval="5000" max_interval="10000"/>
            <FD shun="true" timeout="2500" max_tries="5" up_thread="true" down_thread="true" />
            <VERIFY_SUSPECT timeout="1500" down_thread="false" up_thread="false" />
            <pbcast.NAKACK down_thread="true" up_thread="true" gc_lag="100"
               retransmit_timeout="3000"/>
            <pbcast.STABLE desired_avg_gossip="20000" down_thread="false" up_thread="false" />
            <pbcast.GMS join_timeout="5000" join_retry_timeout="2000" shun="false"
               print_local_addr="true" down_thread="true" up_thread="true"/>
            <pbcast.STATE_TRANSFER up_thread="true" down_thread="true"/>
         </Config>
分享到:
评论

相关推荐

    EJB3.0+JBOSS4.2.2GA集群

    NULL 博文链接:https://xjl712.iteye.com/blog/2077838

    ejb3.0配置jboss7.1.1数据源

    ejb3.0配置使用jboss7.1.1的数据源

    EJB3.0+JBOSS+MyEclipse初体验(完整代码和过程)

    在Myeclipse,基于JBOSS EJB3.0实现了EJB3.0的初次体验,确实比EJB2.0方便了许多。文中有完整的过程和代码。

    ejb3.0 +jboss4.2 实例开发

    ejb3.0+ jboss4.2详细教程 包括: 会话bean 实体bean

    ejb3.0及JBoss配置运行动画全过程

    ejb3.0及JBoss配置运行动画全过程,用抓屏抓的,不过很详细

    EJB3.0入门经典(PDF)

    《EJB3.0入门经典》内容丰富,讲解由浅入深,全面系统,在讲解EJB 3.0最新开发技术的同时,精心设计了与章节内容相关的实例,给出了开发过程中运用到的技巧和注意事项,相信读者一定能从中获益。

    ejb3.0实例教程

    期待已久的 EJB3.0 最终规范已经发布了。虽然 EJB3.0 最终规范出来了一段时间,但对 EJB3.0 的应用还停留在介 ...因为 JBOSS EJB3.0 产品常未成熟,本教程随着新产品的推出将有所改动,请密切关注!

    ejb3.0+Weblogic+Jboss安装配置及入门例子

    ejb3.0+Weblogic+Jboss安装配置及入门例子 基础知识+详细例子+weblogic部署+Jboss部署,非常详细,值得初学者学习

    精通EJB3.0 中文版 3/3

    罗时飞精通EJB3.0.zip.001 罗时飞精通EJB3.0.zip.002 罗时飞精通EJB3.0.zip.003 《精通EJB3.0》共分为4个部分:第一部分对EJB编程基础进行介绍,概要性地对EJB进行了阐述;第二部分重点关注EJB编程的具体内容和...

    ejb3.0入门图文教程

    ejb3.0入门图文教程,包括EJB3.0开发Entity.pdf、EJB3.0开发Message Driven Bean.pdf、EJB3.0开发Session Bean.pdf

    精通EJB3.0 中文版 1/3

    罗时飞精通EJB3.0.zip.001 罗时飞精通EJB3.0.zip.002 罗时飞精通EJB3.0.zip.003 《精通EJB3.0》共分为4个部分:第一部分对EJB编程基础进行介绍,概要性地对EJB进行了阐述;第二部分重点关注EJB编程的具体内容和...

    EJB3.0中文文档

    EJB3.0中文文档,实例教程.EJB3.0中文文档,实例教程.EJB3.0中文文档,实例教程.EJB3.0中文文档,实例教程.

    jboss ejb3.0开发介绍

    期待已久的 ejb3.0 今天做了以下,总结了一下,希望对大家有所帮助

    ejb3.0开发规范PDF

    ejb3.0开发规范,开发ejb3.0过程中的参考文档

    传智播客EJB3.0_EJB3.0企业开发_Jboss_ppt_pptx_黎活明.rar

    2、传智播客EJB3.0.ppt--&gt;是以《传智播客EJB3.0.pptx》为源文件的简单复制与粘贴后的结果,其格式与源文件有些不同,更为简洁,但没有源文件美观。该文件office 97 - office 2003及以上版本都能打开。 下载资源后...

    Jboss 7 + EJB 3.0 + Eclipse环境配置

    Jboss 7 + EJB 3.0 + Eclipse环境配置

    ejb3.0 Jboss安装配置

    ejb3.0+Weblogic+Jboss安装配置及入门例子

    jboss EJB3.0实例教程

    jboss EJB3.0实例教程 jboss EJB3.0实例教程 jboss EJB3.0实例教程

Global site tag (gtag.js) - Google Analytics