基于spring的rmi缓存问题

3 篇文章 0 订阅
3 篇文章 0 订阅
今天看了看spring提供的各种远程服务功能,动手从最简单的rmi搞起,上来就遇到了问题,我用的是eclipse3.6,JEE版本身集成的server的整合和自动部署,感觉比原来一直用的myeclipse并不缺少什么,ssh那些自动的支持工具本身也用不上,速度还不是一般的快,以后打算一直用eclipse了,当修改rmi服务方法的内容,web容器自动重新启动时
引用

严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'messageService' defined in class path resource [config/spring-rmi.xml]: Invocation of init method failed; nested exception is org.springframework.remoting.RemoteLookupFailureException: Lookup of RMI stub failed; nested exception is java.rmi.UnmarshalException: error unmarshalling return; nested exception is:
java.io.EOFException


主要配置文件为
<!-- 服务端配置 -->
	<bean id="rmiMessageService" class="com.app.rmi.RmiMessageServiceImpl" />

	<bean class="org.springframework.remoting.rmi.RmiServiceExporter">
		<property name="service" ref="rmiMessageService"/>
		<property name="serviceName" value="messageService"/>
		<property name="serviceInterface" value="com.app.rmi.RmiMessageService"/>
	</bean>
	
<!-- 客户端配置 -->
	<bean id="messageService" class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
		<property name="serviceUrl" value="rmi://localhost/messageService"/>
		<property name="serviceInterface" value="com.app.rmi.RmiMessageService"/>	
	</bean>


RmiProxyFactoryBean替我们完成了很多rmi的繁琐事,比如生成桩和骨架bean,注册rmi,将RemoteException一类异常转化成未受查异常等等,看来是客户端访问时,留下了缓存stub,解决很简单,messageService那个bean设置一条property:

<property name="lookupStubOnStartup" value="false"/>


上网查了一下,有的也提到了设置其它属性,如cacheStub,refreshStubOnConnectFailure,不过不设置也正常了,最后让我们为rmi和ejb默哀
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值