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

spring 远程接口访问及集群方案(三)

阅读更多

前两篇文章已经对spring rmi方式的远程接口调用进行了说明,在本文中,我主要对spring的集群进行总结和实践,主要使用的组件为cluster4spring

 

集群的目的主要是为了实现负载均衡和单点故障.

 

实际的例子如下:

 

1.cluster4spring官方网站上下载其二进制softamis-cluster4spring-0.85.jar包文件,目前的版本为0.85,其下载网址为http://www.soft-amis.com或者http://sourceforge.net/projects/pscs/

2.spring官方网站上下载其所需要的二进制jar包文件.

3.新建2java项目,一个为server, 一个为client, spring 远程接口访问及集群方案()中的服务端和客户端代码一样.

4.新建一个客户端的配置文件client-cluster.xml,内容如下:

<?xml verson="1.0" encoding = "uft-8"?>

<!DCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">

<beans>

<bean name = "_RmiEndpointFactory" class="org.softamis.cluster4spring.rmi.support.RmiEndpointFactory"/>

 

<bean name="REMOTE_SERVICE_CLIENT" class="org.softamis.cluster4spring.rmi.RmiUrlListProxyFactoryBean"  

     abstract="true">   

    <property name="refreshEndpointsOnConnectFailure" value="true"/>   

  <property name="refreshEndpointsOnStartup" value="true"/>   

<property name="registerTraceInterceptor" value="true"/>    <property name="switchEndpointOnFailure" value="true"/>   

<property name="endpointFactory" ref="_RmiEndpointFactory"/>   

 <property name="endpointSelectionPolicy">

       <bean class="org.softamis.cluster4spring.support.invocation.DefaultEndpointSelectionPolicy"/>

</property>

</bean>   

<bean name="helloWorldServiceProxy" parent="REMOTE_SERVICE_CLIENT">    <property name="serviceInterface"              value="demo.rmi.server.IHelloWorld"/>   

    <property name="serviceURLs">   

      <list>   

   <value>rmi://server1:1099/helloWorldService</value>   

  <value>rmi://server2:1099/helloWorldService</value>   

 <value>rmi://server3:1099/helloWorldService</value>   

 </list>   

</property>   

  </bean>

 使用此配置文件来运行客户端,一般情况下会提示错误信息,:RMI lookup for bean [contextService] with interface [my.own.Interface] failed ; nested exception is java.lang.ClassCastException: java.lang.String

 

如果出现此错误信息,则应修改上述文件中的serviceURLs属性的配置为:

<property name=”serviceURLs”>

<list>

<bean class=”org.softamis.cluster4spring.support.ServiceMoniker”>

<constructor-arg><value>rmi://localhost:1009/helloWorldService</value></constructor-arg>

</bean>

<bean class=”org.softamis.cluster4spring.support.ServiceMoniker”><constructor-arg><value>rmi://localhost: 1009/ helloWorldService </value></constructor-arg>

</bean>

<bean class=”org.softamis.cluster4spring.support.ServiceMoniker”>

<constructor-arg><value>rmi://localhost: 1009/ helloWorldService </value></constructor-arg>

</bean>

</list>

</property>

 

如果有任何问题可以留言与我交流,我也好学习学习。

注意:上面的项目中如果有错误信息,请检查所引用的包有没有问题,是不是少了spring.jar, aopalliance.jar,commons-logging.jar,log4j.jar等等

 

分享到:
评论
1 楼 meler 2011-12-05  
有问题不理解:
<value>rmi://server1:1099/helloWorldService</value>  
<value>rmi://server2:1099/helloWorldService</value>  
<value>rmi://server3:1099/helloWorldService</value> 
你的检测机制是怎么实现的?
如果server1崩溃, 应该有个机制去启用server2或者server3, 把server1挂起!

相关推荐

    46道Dubbo面试题含详细的答案说明(很全)

    Dubbo是一个高性能、轻量级的开源Java RPC框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。 Dubbo提供了三大核心能力:面向接口的远程方法调用、智能容错和负载均衡,以及服务自动注册...

    【JeeSpringCloud v3.2.4】后台权限管理系统+互联网云快速开发框架+微服务分布式代码生成.zip

    模块包括:定时任务调度、服务器监控、平台监控、平台设置、开发平台、单点登录、Redis分布式高速缓存、会员、营销、在线用户、日志、在线人数、访问次数、调用次数、直接集群、接口文档、生成模块、代码实例、安装...

    【JeeSpringCloud v3.2.4】后台权限管理系统+互联网云快速开发框架+微服务分布式代码生成

    模块包括:定时任务调度、服务器监控、平台监控、平台设置、开发平台、单点登录、Redis分布式高速缓存、会员、营销、在线用户、日志、在线人数、访问次数、调用次数、直接集群、接口文档、生成模块、代码实例、安装...

    JeeSpringCloud后台权限管理系统-其他

    模块包括:定时任务调度、服务器监控、平台监控、平台设置、开发平台、单点登录、Redis分布式高速缓存、会员、营销、在线用户、日志、在线人数、访问次数、调用次数、直接集群、接口文档、生成模块、代码实例、安装...

    java开源包1

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...

    JAVA上百实例源码以及开源项目

     各种EJB之间的调用源码示例,用远程接口的引用访问EJB、函数将被FirstEJB调用,同时它将调用secondEJB 基于JAVA的UDP服务器模型源代码 2个目标文件 摘要:Java源码,网络相关,UDP  基于JAVA的UDP服务器模型源代码...

    JAVA上百实例源码以及开源项目源代码

     各种EJB之间的调用源码示例,用远程接口的引用访问EJB、函数将被FirstEJB调用,同时它将调用secondEJB 基于JAVA的UDP服务器模型源代码 2个目标文件 摘要:Java源码,网络相关,UDP  基于JAVA的UDP服务器模型源代码...

    java开源包11

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...

    java开源包2

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...

    java开源包3

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...

    java开源包6

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...

    java开源包5

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...

    java开源包10

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...

    java开源包4

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...

    java开源包8

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...

    java开源包7

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...

    java开源包9

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...

    java开源包101

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...

    Java资源包01

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...

Global site tag (gtag.js) - Google Analytics