2013-08-14 3 views
5

私は、次のEJB書いた:すべてのNetworkInterface JBossの内側に列挙常にISUP

有効ではありません
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) 

:これは以下のようにログインする展開で

@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:net5 (Intel(R) Wireless WiFi Link 4965AGN) 
name:eth8 (VirtualBox Host-Only Ethernet Adapter) 

このアプリケーション・サーバーの問題ですか?私はJBoss EAP 6.1.0 GA(AS 7上に構築されています)を使用しています。どのようにそれぞれの接続を開くことなく実行しているNetworkInterfacesの有効なリストを取得するには?それに加えて、私はマルチキャストをサポートするものを知りたがっていますが、これは常にtrueです。


レポ

私は両方jbosspure JDKの走行にアイデアのプロジェクトとrepo at githubcompiled earおよびログを作成されています。それにはused configuration filelist of dynamically loaded librariesも含まれています。

+0

同じJREを使用していますか? JBossは、例えば、 OpenJDKとスタンドアロンのアプリケーションOracle JRE? JBossはsslとネットワークとファイルioに(オプションで)ネイティブライブラリを使用していますが、あなたの問題とは何の関係もありません。 – greyfairer

+0

はい、純粋なループとejbの両方がOracleによって同じ 'jdk1.7.0_21_i586'でテストされました – kbec

+0

SecurityManagerは見ることのできるネットワークインターフェイスの数を制限できますが、isUpステータスには影響しないはずです... Didネイティブモジュールなしで実行しようとしていますか? IIRCでは、libapr-1.soとlibapr-util-1.soと呼ばれています。 – greyfairer

答えて

1

"-Djava.net.preferIPv4Stack = true"コマンドラインオプションを使用した結果、このオプションが設定されたJBoss JVMが起動する可能性があります。このオプションでスタンドアロンプ​​ログラムを起動すると、同じ結果が得られます。

なぜこのようなことが起こったのかについては、私はまだ調査中です。これまでは、同じ物理デバイス上に複数のインターフェイスがあり、一部のインターフェイスでIPv6が有効になっていて、無効になっているインターフェイスがあると混乱しました。この「何か」は、Windows、JVM、またはNetworkInterfaceクラスです。

オプションと、IPv4からIPv6がJVM内でOr​​acleのNetworking IPv6 User Guideでどのように機能するかについての情報。

Google検索「java.net.preferIPv4Stack isUp」は、インターフェイスでIPv6が無効になっているifUp()メソッドが正常に動作しないことを実際に示しているOpenJDK bug reportにつながります。

+0

解決策のように思える。 – kbec

関連する問題