获取`不能分配请求的地址java.net.SocketException使用Ehcache多播

尝试启动多播提供程序时获取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.net.NetworkInterface.getDefault()返回的IPv6地址引起的。我在Macbook和正在使用无线 – p2p0(用于AirDrop)作为默认网络接口被返回,但我的p2p0只有一个IPv6 ether条目[通过运行ipconfig找到]。

两个解决方案,这两个都为我工作(我喜欢第一,因为它工作,无论你是使用有线或无线连接)

>使用-Djava.net.preferIPv4Stack = true启动JVM。这导致java.net.NetworkInterface.getDefault()返回我的vboxnet0网络接口 – 不确定如果你没有运行只有主机的VM,你会得到什么。
>关闭无线并使用有线连接

http://stackoverflow.com/questions/18747134/getting-cant-assign-requested-address-java-net-socketexception-using-ehcache

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:获取`不能分配请求的地址java.net.SocketException使用Ehcache多播