今天看了看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默哀
分享到:
相关推荐
- **RMI缓存**:客户端可以缓存远程对象的引用,减少重复的远程查找操作。 - **负载均衡**:通过RMI注册表,可以将请求分发到多个服务实例,提高系统可用性。 ### 6. Spring Boot与RMI Spring Boot简化了Spring...
在多节点环境下,可以使用EhCache的分布式缓存功能,通过RMI、JGroups或Terracotta等方式实现数据同步。配置分布式缓存需要在`ehcache.xml`中指定相关的网络配置。 **7. 性能优化与监控** EhCache提供了丰富的统计...
缓存技术被广泛应用于解决这些问题,通过存储常用数据或计算结果,减少数据库访问,提高响应速度。Spring框架提供了一套灵活的缓存抽象,允许开发者选择不同的缓存实现,如EHCache。 1.2 主要特性 Spring的缓存抽象...
2. 性能优化:通过调整RMI连接池大小、缓存远程对象引用等方式,提高并发处理能力,减少网络开销。 **五、RMIClient子文件解析** "RMIClient"可能是项目中的一个客户端模块,负责与RMI服务器进行交互。这个模块可能...
一级缓存:基于Session级别分配一块缓存空间,缓存访问的对象信息。Session关闭后会自动清除缓存。 二级缓存:是SessionFactory对象缓存,可以被创建出的多个 Session 对象共享,二级缓存默认是关闭的,如果要使用...
Java RMI(Remote Method ... - 现代的Java企业级应用通常使用Spring框架的远程服务支持,如RMI、Hessian、 Burlap等。 通过深入理解和实践文档中的内容,开发者能够熟练掌握Java RMI技术,构建高效稳定的分布式系统。
EhCache 是一个开源、基于内存的Java缓存库,适用于快速、轻量级的数据存储。现在我们来详细探讨如何在Spring应用中集成EhCache以及相关知识点。 1. **EhCache简介** - EhCache 是一个广泛使用的Java缓存解决方案...
### Ehcache分布式缓存及其在Spring中的应用 #### 一、Ehcache概述与原理 Ehcache是一款高效且轻量级的纯Java缓存框架,由于其出色的性能和易于集成的特点,在Java开发中有着广泛的应用。作为Hibernate的默认缓存...
在Spring2.5及以后的版本中,Spring框架被拆分成了多个模块化的jar包,每个jar包都有特定的功能,这使得开发者可以根据项目的实际需求来选择合适的jar包进行集成,从而避免了引入不必要的代码库导致的资源浪费问题。...
RMI(Remote Method Invocation,远程方法调用)是Java平台上的一个重要特性,它允许...不过,实际应用中,还应关注RMI与其他技术(如EJB、JMS、JNDI等)的集成,以及现代Java框架(如Spring)中对RMI的支持和扩展。
在升级到Spring Framework 5.2.0之前,开发者需要注意一些升级事项,比如兼容性问题和API变更。升级指南中通常会详细介绍这些内容,以帮助用户平滑过渡到新版本。 #### 支持的版本 Spring Framework 5.2.0与Spring...
- **依赖关系**:依赖于 `spring-core.jar`、`spring-beans.jar`、`spring-aop.jar`、`spring-dao.jar`、`spring-jdbc.jar`、`spring-orm.jar`、`spring-web.jar` 和 `spring-webmvc.jar`。 ##### 7. spring-jdbc....
- **查询与缓存**:介绍了如何在Spring中使用Hibernate进行数据库查询及缓存管理。 #### 8. 使用JPA2进行数据访问 - **JPA简介**:Java Persistence API(JPA)是Java EE标准的一部分,用于管理关系型数据库中的...
- 分布式缓存:EhCache支持集群环境,通过RMI、Terracotta等方式实现跨节点的分布式缓存。 6. EhCache与其他缓存框架的比较: - Hibernate集成:EhCache与Hibernate集成紧密,作为默认的第二级缓存提供高效的数据...
使用基于AOP的Spring特性,如声明型事务管理(Declarative Transaction Management),也要在应用里包含这个jar包。 (4) spring-context.jar 这个jar文件为Spring核心提供了大量扩展。可以找到使用Spring ...
6. 可以通过RMI、可插入API等方式进行分布式缓存 7. 具有缓存和缓存管理器的侦听接口 8. 支持多缓存管理器实例,以及一个实例的多个缓存区域 9. 提供Hibernate的缓存实现 缺点: 1. 使用磁盘Cache的时候非常...
Ehcache还允许通过RMI进行分布式缓存,虽然使用较少,但在特定场景下仍有一定的价值。Ehcache的主要特性包括快速响应、简单的API、丰富的缓存策略、自动持久化等。在Hibernate和Spring等框架中,Ehcache常作为默认的...
使用基于AOP的Spring特性,如声明型事务管理(Declarative Transaction Management),也要在应用里包含这个jar包。 (4) spring-context.jar 这个jar文件为Spring核心提供了大量扩展。可以找到使用Spring ...