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等等

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值