Java Ehcache分布式RMI在每次同步时传输WEB-INF/lib下的JAR列表

Java Ehcache分布式RMI在每次同步时传输WEB-INF/lib下的JAR列表,java,hibernate,rmi,ehcache,distributed-caching,Java,Hibernate,Rmi,Ehcache,Distributed Caching,我已经建立了一个使用Hibernate的web应用程序。使用中的说明设置级别缓存和Ehcache web应用程序使用自动对等发现部署在不同网络节点的两个不同Tomcat实例中。两个雄猫部署了完全相同的战争 尽管WEB-INF/lib和WEB-INF/classes文件夹是相同的,而且缓存的实体类有一个serialVersionUID字段,但我必须重写Tomcat security.policy并启用安全管理器以进行远程类加载 分布式缓存似乎工作得很好,但是,在每个同步事件上,我通过使用ngrep

我已经建立了一个使用Hibernate的web应用程序。使用中的说明设置级别缓存和Ehcache

web应用程序使用自动对等发现部署在不同网络节点的两个不同Tomcat实例中。两个雄猫部署了完全相同的战争

尽管WEB-INF/lib和WEB-INF/classes文件夹是相同的,而且缓存的实体类有一个serialVersionUID字段,但我必须重写Tomcat security.policy并启用安全管理器以进行远程类加载

分布式缓存似乎工作得很好,但是,在每个同步事件上,我通过使用ngrep嗅探可以看到三到四条这种格式的消息

T 2011/06/14 10:00:52.304760 192.168.2.114:47000 -> 192.168.2.112:37795 [A]
Q....w....V....0...&..sr..java.util.ArrayListx.....a....I..sizepxp....w.....sr..org.hibernate.cache.CacheKey.......m...I..hashCodeL..entityModet..Lorg/hibernate/EntityMode
  ;L..entityOrRoleNamet..Ljava/lang/String;L..keyt..Ljava/io/Serializable;L..typet..Lorg/hibernate/type/Type;t.rfile:/path/to/apps_/webroot/default/webapps/ROOT/WEB-INF/clas
  ses/ file:/path/to/apps_/webroot/default/webapps/ROOT/WEB-INF/lib/activation-1.1.jar file:/path/to/apps_/webroot/default/webapps/ROOT/WEB-INF/lib/antlr-2.7.7.jar file:/mnt
  /hgfs/cool/webroot/default/webapps/ROOT/WEB-INF/lib/aopalliance-1.0.jar file:/path/to/apps_/webroot/default/webapps/ROOT/WEB-INF/lib/asm-1.5.3.jar file:/path/to/apps_/webr
  oot/default/webapps/ROOT/WEB-INF/lib/asm-attrs-1.5.3.jar file:/path/to/apps_/webroot/default/webapps/ROOT/WEB-INF/lib/aspectjweaver-1.6.8.jar file:/path/to/apps_/webroot/d
  efault/webapps/ROOT/WEB-INF/lib/backport-util-concurrent-3.0.jar file:/path/to/apps_/webroot/default/webapps/ROOT/WEB-INF/lib/cglib-2.1_3.jar file:/path/to/apps_/webroot/d
  efault/webapps/ROOT/WEB-INF/lib/commons-beanutils-1.8.0.jar file:/path/to/apps_/webroot/default/webapps/ROOT/WEB-INF/lib/commons-chain-1.2.jar file:/path/to/apps_/webroot/
这些框架更长,基本上列出了我的WAR WEB-INF/lib中的每个JAR文件。这在我的网络中浪费了很多带宽

谁能解释一下我可能做错了什么?因为两个web应用程序都可以访问相同的类,所以我并不认为需要远程类加载,但是如果没有远程类加载,我就无法让它工作。即使两者都有相同的jar和相同的串行版本字段。我尝试过设置java.rmi.codebase属性,但我不确定应该将其设置为什么值,因为我读过的大多数示例都与applet和浏览器JVM相关

一个合理的解决方法是去掉那些烦人的JAR文件列表,它们会使缓存集群中的每个同步事件消息都变得臃肿

提前感谢,


YJ

我认为您不应该启用远程类加载,因为您的应用程序将具有JAR。为什么要启用它?我收到了大量java.lang.ClassNotFoundException错误。当然,复制不起作用。只是想检查一下,您是否使用了如本文所述的hibernate二级缓存api集成?为了安全起见,我按照指示将hibernate.cache.provider_类属性更新为hibernate.cache.region.factory_class=net.sf.ehcache.hibernate.EhCacheRegionFactory。然而,在我进行所有绝望的尝试之前,我使用的是Hibernate 3.2,对于它,原始属性Hibernate.cache\u provider\u类很好。不过还是有问题。谢谢你的建议