使用Ehcache多播获取“无法分配请求的地址”java.net.SocketException

问题描述 投票:35回答:4

尝试启动多播提供程序时获取java.net.SocketException

2013-09-11 11:45:44,204 [main] ERROR net.sf.ehcache.distribution.MulticastRMICacheManagerPeerProvider: Error starting heartbeat. Error was: Can't assign requested address
java.net.SocketException: Can't assign requested address
at java.net.PlainDatagramSocketImpl.join(Native Method)
at java.net.AbstractPlainDatagramSocketImpl.join(AbstractPlainDatagramSocketImpl.java:178)
at java.net.MulticastSocket.joinGroup(MulticastSocket.java:319)
at net.sf.ehcache.distribution.MulticastKeepaliveHeartbeatReceiver.init(MulticastKeepaliveHeartbeatReceiver.java:88)
at net.sf.ehcache.distribution.MulticastRMICacheManagerPeerProvider.init(MulticastRMICacheManagerPeerProvider.java:95)
java ehcache ipv6 multicast multicastsocket
4个回答
0
投票

在我的情况下,我刚刚开始使用VPN到需要身份验证的网络。我的应用程序将启动并可以通过管道连接到其数据库,但我使用ehcach.xml中的IP 230.0.0.1配置分布式缓存是原因。在生产中一切都很好,在本地它只会失败并回滚到不同的策略,但通过VPN,多播请求遇到了身份验证质询,结果就是这个错误。我只需要一个短期修复,所以在这些环境中我禁用了ehcache组播配置,事情恢复正常。

这是ehcache.xml中令人讨厌的一条线,它被简单地评论出来了

<cacheManagerPeerProviderFactory
  class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
  properties="peerDiscovery=automatic, multicastGroupAddress=230.0.0.1, multicastGroupPort=4446, timeToLive=32"
/>
© www.soinside.com 2019 - 2024. All rights reserved.