Java Ehcache在启动失败后未清理对等侦听器

Java Ehcache在启动失败后未清理对等侦听器,java,ehcache,Java,Ehcache,我有一个问题,在应用程序启动失败后,ehcache没有清理其侦听器。基本上,启动失败后,它会尝试在remoteObjectPort 40003上建立侦听器,但由于端口已在使用,因此失败: Caused by: java.rmi.server.ExportException: Port already in use: 40003; nested exception is: java.net.BindException: Address already in use ... 即使应

我有一个问题,在应用程序启动失败后,ehcache没有清理其侦听器。基本上,启动失败后,它会尝试在remoteObjectPort 40003上建立侦听器,但由于端口已在使用,因此失败:

Caused by: java.rmi.server.ExportException: Port already in use: 40003; nested exception is:
        java.net.BindException: Address already in use
...
即使应用程序已停止,侦听器仍在这些端口上运行:

[root@server logs]# netstat -tulpn | grep 4000
tcp        0      0 0.0.0.0:40001               0.0.0.0:*                   LISTEN      14946/java
tcp        0      0 0.0.0.0:40003               0.0.0.0:*                   LISTEN      14946/java
这是我的ehcache.xml文件中的相关配置:

<cacheManagerPeerProviderFactory 
        class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
        properties="peerDiscovery=automatic,
                    multicastGroupAddress=230.0.0.1,
                    multicastGroupPort=40002,
                    timeToLive=64"
    />



    <cacheManagerPeerListenerFactory
class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"
        properties="port=40001,remoteObjectPort=40003,
                    socketTimeoutMillis=20000"/>
我还在hibernate配置中设置以下属性,以使用ehcache启用二级缓存:

properties.put("hibernate.cache.use_second_level_cache", "true");
properties.put("hibernate.cache.use_query_cache", "true");
properties.put("hibernate.cache.region.factory_class", "org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory");
properties.put("net.sf.ehcache.configurationResourceName", "/cache/ehcache.xml");

请添加有关应用程序生命周期的更多信息。从这个问题上,我推断你正在使用Spring。我确认如果
CacheManager
初始化正确,最好干净地关闭它。@LouisJacomet done。。这有帮助吗?
properties.put("hibernate.cache.use_second_level_cache", "true");
properties.put("hibernate.cache.use_query_cache", "true");
properties.put("hibernate.cache.region.factory_class", "org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory");
properties.put("net.sf.ehcache.configurationResourceName", "/cache/ehcache.xml");