我编写了以下EJB:
@Singleton
@LocalBean
@Startup
public class Starter {
private static final Logger logger = Logger.getLogger("lab");
@PostConstruct
public void init() throws Exception {
for (final Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements(); ) {
final NetworkInterface iface = en.nextElement();
if (iface.isUp()) {
logger.info(iface);
}
}
}
}在部署这些日志时,如下所示:
name:lo (Software Loopback Interface 1)
name:net0 (WAN Miniport (SSTP))
name:net1 (WAN Miniport (L2TP))
name:net2 (WAN Miniport (PPTP))
name:ppp0 (WAN Miniport (PPPOE))
name:eth0 (WAN Miniport (IPv6))
name:eth1 (WAN Miniport (Network Monitor))
name:eth2 (WAN Miniport (IP))
name:net5 (Intel(R) Wireless WiFi Link 4965AGN)
name:eth7 (Intel(R) Wireless WiFi Link 4965AGN - VirtualBox Bridged Networking Driver Miniport)
name:eth8 (VirtualBox Host-Only Ethernet Adapter)
name:net20 (Intel(R) Wireless WiFi Link 4965AGN-Netmon Lightweight Filter Driver-0000)
name:eth10 (VirtualBox Host-Only Ethernet Adapter-Netmon Lightweight Filter Driver-0000)
name:eth11 (VirtualBox Host-Only Ethernet Adapter-QoS Packet Scheduler-0000)
name:eth12 (VirtualBox Host-Only Ethernet Adapter-WFP LightWeight Filter-0000)
name:eth13 (WAN Miniport (IPv6)-QoS Packet Scheduler-0000)
name:eth14 (WAN Miniport (IP)-QoS Packet Scheduler-0000)
name:eth15 (WAN Miniport (Network Monitor)-Netmon Lightweight Filter Driver-0000)
name:eth16 (WAN Miniport (Network Monitor)-QoS Packet Scheduler-0000)
name:net21 (Intel(R) Wireless WiFi Link 4965AGN-Native WiFi Filter Driver-0000)
name:eth20 (Intel(R) Wireless WiFi Link 4965AGN - VirtualBox Bridged Networking Driver Miniport-Netmon Lightweight Filter Driver-0000)
name:eth21 (Intel(R) Wireless WiFi Link 4965AGN - VirtualBox Bridged Networking Driver Miniport-QoS Packet Scheduler-0000)
name:eth22 (Intel(R) Wireless WiFi Link 4965AGN - VirtualBox Bridged Networking Driver Miniport-WFP LightWeight Filter-0000)这是无效的。在J2SE运行时上运行的相同循环的输出如下所示:
name:lo (Software Loopback Interface 1)
name:net5 (Intel(R) Wireless WiFi Link 4965AGN)
name:eth8 (VirtualBox Host-Only Ethernet Adapter)这是应用服务器问题吗?我使用的是JBoss EAP6.1.0GA(它建立在7的基础上)。如何在没有打开连接的情况下获得有效的NetworkInterfaces列表?此外,我想知道哪一个支持多播,但这也总是true。
回购
我创建了github的回购,Idea的项目,编译耳,以及杰伯斯和纯正 jdk运行的日志。它还包含用过的配置文件和动态加载库列表。
发布于 2013-11-02 14:10:51
这种差异是使用"-Djava.net.preferIPv4Stack=true“命令行选项的结果,您可能使用此选项集启动JBoss JVM。当使用此选项启动独立程序时,它将给出相同的结果。
为什么会发生这种事我还在找。到目前为止,我已经谈到了当您在同一个物理设备上有多个接口时,有些会感到困惑,其中一些已经启用了IPv6,而有些则禁用了它。这个“东西”可能是Windows、JVM或NetworkInterface类。
有关该选项以及IPv4和IPv6如何在来自网络IPv6用户指南的网络IPv6用户指南中工作的信息。
Google "java.net.preferIPv4Stack isUp“导致一个OpenJDK错误报告,它实际上说明在接口上禁用IPv6的某些情况下,ifUp()方法可能不能正常工作。
https://stackoverflow.com/questions/18232961
复制相似问题