环境
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>
分享到:
相关推荐
- **JBoss IDE 1.5 GA**:提供了一整套针对JBoss应用程序服务器的集成开发环境(IDE),支持EJB3.0、JBPM、JBoss AOP等技术。 - **Eclipse WTP插件**:Web Tools Platform,用于开发Java EE项目,本例中用于创建一个...
本篇文章将详细介绍如何下载与安装JBoss 4.0.4.GA版本,并配置必要的环境变量,以及进行基本的功能验证。 #### 二、下载 首先,我们需要从官方源或可靠的第三方资源下载JBoss 4.0.4.GA的安装包。根据提供的部分内容...
【标题】:“ejb2.0消息驱动bean的开发(JBOSS4.0.4.GA 环境)” 在Java企业版(Java EE)的早期版本中,EJB(Enterprise JavaBeans)2.0是核心组件之一,用于构建分布式、事务处理和面向服务的业务应用程序。消息...
#### 四、EJB3.0与JBoss部署关系 当在JBoss中部署EJB3.0项目时,通常将项目构建为EAR(Enterprise Application)文件,然后将其放置在`[jboss安装目录]/server/[config-name]/deploy`目录下。JBoss会自动检测此目录...
- **服务器配置**: 如 jboss-4.0.4.GA 等应用服务器需要配置特定的 JAR 文件,如 jboss-ejb3x.jar 和 jboss-annotations-ejb3.jar 来支持 EJB 3.0。 **7. 示例代码** 下面是一个简单的示例代码,展示了如何定义...
2. **EJB 3.0**:JBoss 4.0.5.GA实现了EJB 3.0规范,简化了Enterprise JavaBeans的开发,通过注解(Annotation)可以轻松地声明bean的属性,无需XML配置文件,提高了开发效率。 3. **JPA**:这一版本引入了JPA作为...
- **步骤1**: 解压缩JBoss AS 4.0.4.GA-Patch1的安装包,并在DOS命令行窗口中进入安装目录,执行`java –jar jboss-4.0.4.GA-Patch1-installer.jar`来启动安装程序。 - **步骤2**至**步骤11**: 按照安装向导的提示...
在JBoss4.0.4GA这个应用服务器上,这些EJB3示例代码可以直接运行,体验到EJB3带来的便利和强大功能。通过学习和实践这些代码,开发者可以深入理解EJB3的核心概念,提升在企业级Java应用开发中的能力。
- 在DOS窗口中,进入JBoss AS 4的目录,运行`java –jar jboss-4.0.4.GA-Patch1-installer.jar`命令启动安装程序。 - 选择语言,接受许可协议。 - 指定JBoss服务器的安装目录。 - 选择J2EE支持类型,如`all`、`...
本文将详细介绍如何利用MyEclipse(版本6.0.1GA)在Eclipse3.3环境下,配合Jboss4.0.4服务器,创建、配置并发布基于EJB3的J2EE工程项目。 #### 一、构建J2EE开发环境 首先,确保开发环境已经搭建好,包括安装了...
- 兼容的JBoss AS4.0.4 GA及以上版本,且包含JBoss EJB3.0 RC8。这通常需要通过特殊安装程序JEMS来获取。 - Java环境需要支持Java 5或更高版本。 #### 3. **项目配置** 项目结构是Seam应用开发的基础,主要包括...