2

私は奇妙な問題に直面しています。私は JmDNS 3.1.6 用の OSGi バンドルを作成し、それを Equinox で使用してサービスを公開してから約 2 年になります。最近、Apache Felix に移行しました。残念ながら、同じ JmDNS バンドルは、問題なくインストールされたにもかかわらず、サービスをエクスポートしていないようです。サービスを公開するために使用するコードは次のとおりです

private void publishBonjourService() {
    try {

        if (this.jmdns != null) {
            logger.config("deregistering existing service, first");
            jmdns.unregisterService(this.serviceInfo);  
        } else {
            logger.config("publishing service: \"" 
                    + bonjourServiceName + "\"");
            jmdns = JmDNS.create(InetAddress.getLocalHost(), 
                    bonjourServiceName);                
        }

        HashMap<String, Object> props = new HashMap<String, Object>();
        props.put("path", "index.html");

        this.serviceInfo = ServiceInfo.create(
                "_http._tcp.local.", 
                bonjourServiceName, 
                HttpService.WEB_SERVICE_PORT, 
                0, 
                0, 
                props);         
        jmdns.registerService(this.serviceInfo);
        logger.config("service " + bonjourServiceName 
                + " published via JmDNS");
    } catch (Exception e) {
        logger.warning("Caught exception when trying to register "
                + "Bonjour service! (" + e.getMessage() + ")");
    }
}

私の Mac で Bonjour Browser を使用すると、上記のコードが例外なく実行されるにもかかわらず、サービスが公開されていないことがわかります。私がインストールしたバンドルについて、Felix は次のように述べています。

   ID|State      |Level|Name
    0|Active     |    0|System Bundle (3.2.2)
    1|Active     |    4|JmDNSTest (0.0.1)
    9|Active     |    2|Noelios Restlet Engine (1.1.0)
   10|Active     |    2|JSON (2.0.0)
   11|Active     |    2|Restlet API (1.1.0)
   12|Active     |    2|Restlet Extension - JSON (1.1.0)
   13|Active     |    2|org.rxtx (2.2.0)
   14|Active     |    2|JmDNS (3.2.2)
   15|Active     |    1|Apache Felix Bundle Repository (1.6.2)
   16|Active     |    1|Apache Felix Configuration Admin Service (1.2.8)
   17|Active     |    1|Apache Felix EventAdmin (1.2.12)
   18|Active     |    1|Apache Felix Declarative Services (1.6.0)
   19|Active     |    1|Apache Felix Gogo Command (0.8.0)
   20|Active     |    1|Apache Felix Gogo Runtime (0.8.0)
   21|Active     |    1|Apache Felix Gogo Shell (0.8.0)

OSGi 内で一般的に JmDNS を使用する方法に関するチュートリアルを検索しましたが、ネット上で何も見つかりませんでした。問題が何であるかについてのヒントを教えてくれたり、役立つリソースの方向性を教えてくれたりしてくれたら幸いです。

助けてくれてありがとう、ゲオルク

編集: Maven リポジトリにある JmDNS 3.2.2 に移行し、それを Felix で使用します。以前の投稿で示したように、javax.jmdns.impl のクラスを直接使用することはもうありません (上記のソース コード リストを更新しました)。しかし、まだ運がありません。JmDNSは何とか動いているようです。JmDNS のロギング レベルを最高に設定しました。これは、取得した内容の抜粋です。

        04.08.2011 09:14:29 javax.jmdns.impl.JmDNSImpl <init>
    FEINER: JmDNS instance created
    04.08.2011 09:14:29 javax.jmdns.impl.JmDNSImpl registerServiceType
    FEIN: fusion.http.registering service type: _http._tcp.local. as: _http._tcp.local.
    04.08.2011 09:14:30 javax.jmdns.impl.tasks.state.DNSStateTask run
    FEINER: Prober(fusion.http).run() JmDNS probing fusion.http
    04.08.2011 09:14:30 javax.jmdns.impl.tasks.state.DNSStateTask run
    FEINER: Prober(fusion.http).run() JmDNS probing #probing 1
    04.08.2011 09:14:30 javax.jmdns.impl.JmDNSImpl send
    AM FEINSTEN: send(fusion.http) JmDNS out:dns[query,224.0.0.251:5353, length=48, id=0x0, questions=1, authorities=1
    questions:
        [AllRecords@685450225 type: TYPE_ANY index 255, class: CLASS_IN index 1, name: si-zmac8.local.]
    authorities:
        [IPv4Address@1259649067 type: TYPE_A index 1, class: CLASS_IN index 1, name: si-zmac8.local. ttl: '3599/3600' address: '192.168.178.75']]
        question:      [AllRecords@685450225 type: TYPE_ANY index 255, class: CLASS_IN index 1, name: si-zmac8.local.]
        authoritative: [IPv4Address@1259649067 type: TYPE_A index 1, class: CLASS_IN index 1, name: si-zmac8.local. ttl: '3599/3600' address: '192.168.178.75']
       0: 0000000000010000 000100000873692d 7a6d616338056c6f 63616c0000ff0001     ........ .....si- zmac8.lo cal.....
      20: c00c000100010000 0e100004c0a8b24b                                       ........ .......K

    04.08.2011 09:14:30 javax.jmdns.impl.SocketListener run
    AM FEINSTEN: SocketListener(fusion.http).run() JmDNS in:dns[query,192.168.178.75:5353, length=48, id=0x0, questions=1, authorities=1
    questions:
        [AllRecords@264587158 type: TYPE_ANY index 255, class: CLASS_IN index 1, name: si-zmac8.local.]
    authorities:
        [IPv4Address@1147629119 type: TYPE_A index 1, class: CLASS_IN index 1, name: si-zmac8.local. ttl: '3600/3600' address: '192.168.178.75']]
        question:      [AllRecords@264587158 type: TYPE_ANY index 255, class: CLASS_IN index 1, name: si-zmac8.local.]
        authoritative: [IPv4Address@1147629119 type: TYPE_A index 1, class: CLASS_IN index 1, name: si-zmac8.local. ttl: '3600/3600' address: '192.168.178.75']
       0: 0000000000010000 000100000873692d 7a6d616338056c6f 63616c0000ff0001     ........ .....si- zmac8.lo cal.....
      20: c00c000100010000 0e100004c0a8b24b                                       ........ .......K

    04.08.2011 09:14:30 javax.jmdns.impl.JmDNSImpl handleQuery
    FEIN: fusion.http.handle query: dns[query,192.168.178.75:5353, length=48, id=0x0, questions=1, authorities=1
    questions:
        [AllRecords@264587158 type: TYPE_ANY index 255, class: CLASS_IN index 1, name: si-zmac8.local.]
    authorities:
        [IPv4Address@1147629119 type: TYPE_A index 1, class: CLASS_IN index 1, name: si-zmac8.local. ttl: '3600/3600' address: '192.168.178.75']]
    04.08.2011 09:14:30 javax.jmdns.impl.tasks.Responder start
    AM FEINSTEN: Responder(fusion.http)start() question=[AllRecords@264587158 type: TYPE_ANY index 255, class: CLASS_IN index 1, name: si-zmac8.local.]
    04.08.2011 09:14:30 javax.jmdns.impl.tasks.Responder start
    AM FEINSTEN: Responder(fusion.http)start() Responder chosen delay=0
    04.08.2011 09:14:30 javax.jmdns.impl.DNSIncoming readAnswer
    FEINER: DNSIncoming() unknown type:TYPE_NSEC index 47
    04.08.2011 09:14:30 javax.jmdns.impl.SocketListener run
    AM FEINSTEN: SocketListener(fusion.http).run() JmDNS in:dns[response,192.168.178.75:5353, length=90, id=0x0, flags=0x8400:r:aa, answers=2
    answers:
        [IPv6Address@1779280140 type: TYPE_AAAA index 28, class: CLASS_IN index 1-unique, name: SI-ZMAC8.local. ttl: '120/120' address: 'fe80:0:0:0:e6ce:8fff:fe26:9ec6%0']
        [IPv4Address@651528505 type: TYPE_A index 1, class: CLASS_IN index 1-unique, name: SI-ZMAC8.local. ttl: '120/120' address: '192.168.178.75']]
        answer:        [IPv6Address@1779280140 type: TYPE_AAAA index 28, class: CLASS_IN index 1-unique, name: SI-ZMAC8.local. ttl: '120/120' address: 'fe80:0:0:0:e6ce:8fff:fe26:9ec6%0']
        answer:        [IPv4Address@651528505 type: TYPE_A index 1, class: CLASS_IN index 1-unique, name: SI-ZMAC8.local. ttl: '120/120' address: '192.168.178.75']
       0: 0000840000000002 000000010853492d 5a4d414338056c6f 63616c00001c8001     ........ .....SI- ZMAC8.lo cal.....
      20: 000000780010fe80 000000000000e6ce 8ffffe269ec6c00c 0001800100000078     ...x.... ........ ...&.... .......x
      40: 0004c0a8b24bc00c 002f800100000078 0008c00c00044000 0008                 .....K.. ./.....x ......@. ..

    04.08.2011 09:14:30 javax.jmdns.impl.JmDNSImpl handleRecord
    FEIN: fusion.http handle response: [IPv6Address@1779280140 type: TYPE_AAAA index 28, class: CLASS_IN index 1-unique, name: SI-ZMAC8.local. ttl: '119/120' address: 'fe80:0:0:0:e6ce:8fff:fe26:9ec6%0']
    04.08.2011 09:14:30 javax.jmdns.impl.JmDNSImpl handleRecord
    FEIN: fusion.http handle response cached record: null
    04.08.2011 09:14:30 javax.jmdns.impl.JmDNSImpl handleRecord
    FEIN: fusion.http handle response: [IPv4Address@651528505 type: TYPE_A index 1, class: CLASS_IN index 1-unique, name: SI-ZMAC8.local. ttl: '119/120' address: '192.168.178.75']
    04.08.2011 09:14:30 javax.jmdns.impl.JmDNSImpl handleRecord
    FEIN: fusion.http handle response cached record: null
    04.08.2011 09:14:31 javax.jmdns.impl.tasks.state.DNSStateTask run
    FEINER: Prober(fusion.http).run() JmDNS probing fusion.http
    04.08.2011 09:14:31 javax.jmdns.impl.tasks.state.DNSStateTask run
    FEINER: Prober(fusion.http).run() JmDNS probing #probing 2
    04.08.2011 09:14:31 javax.jmdns.impl.JmDNSImpl send
    AM FEINSTEN: send(fusion.http) JmDNS out:dns[query,224.0.0.251:5353, length=48, id=0x0, questions=1, authorities=1
    questions:
        [AllRecords@1653858092 type: TYPE_ANY index 255, class: CLASS_IN index 1, name: si-zmac8.local.]
    authorities:
        [IPv4Address@1512109123 type: TYPE_A index 1, class: CLASS_IN index 1, name: si-zmac8.local. ttl: '3600/3600' address: '192.168.178.75']]
        question:      [AllRecords@1653858092 type: TYPE_ANY index 255, class: CLASS_IN index 1, name: si-zmac8.local.]
        authoritative: [IPv4Address@1512109123 type: TYPE_A index 1, class: CLASS_IN index 1, name: si-zmac8.local. ttl: '3600/3600' address: '192.168.178.75']
       0: 0000000000010000 000100000873692d 7a6d616338056c6f 63616c0000ff0001     ........ .....si- zmac8.lo cal.....
      20: c00c000100010000 0e100004c0a8b24b                                       ........ .......K

    04.08.2011 09:14:31 javax.jmdns.impl.SocketListener run
    AM FEINSTEN: SocketListener(fusion.http).run() JmDNS in:dns[query,192.168.178.75:5353, length=48, id=0x0, questions=1, authorities=1
    questions:
        [AllRecords@696551663 type: TYPE_ANY index 255, class: CLASS_IN index 1, name: si-zmac8.local.]
    authorities:
        [IPv4Address@1010440244 type: TYPE_A index 1, class: CLASS_IN index 1, name: si-zmac8.local. ttl: '3600/3600' address: '192.168.178.75']]
        question:      [AllRecords@696551663 type: TYPE_ANY index 255, class: CLASS_IN index 1, name: si-zmac8.local.]
        authoritative: [IPv4Address@1010440244 type: TYPE_A index 1, class: CLASS_IN index 1, name: si-zmac8.local. ttl: '3600/3600' address: '192.168.178.75']
       0: 0000000000010000 000100000873692d 7a6d616338056c6f 63616c0000ff0001     ........ .....si- zmac8.lo cal.....
      20: c00c000100010000 0e100004c0a8b24b                                       ........ .......K

編集: これは私の Felix インスタンスの jstack の出力の抜粋です (実行可能または時限待機としてリストされているすべてのスレッドを除外しました):

Full thread dump Java HotSpot(TM) 64-Bit Server VM (20.1-b02-383 mixed mode):

"Thread-40" daemon prio=5 tid=7fa7be0ac800 nid=0x10ad9a000 in Object.wait() [10ad99000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at EDU.oswego.cs.dl.util.concurrent.CyclicBarrier.doBarrier(Unknown Source)
    - locked <7f36e5728> (a org.apache.felix.eventadmin.impl.tasks.Rendezvous)
    at EDU.oswego.cs.dl.util.concurrent.CyclicBarrier.barrier(Unknown Source)
    at org.apache.felix.eventadmin.impl.tasks.Rendezvous.waitForRendezvous(Rendezvous.java:55)
    at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:272)
    at org.apache.felix.eventadmin.impl.EventAdminImpl.handleEvent(EventAdminImpl.java:165)
    at org.apache.felix.eventadmin.impl.EventAdminImpl.sendEvent(EventAdminImpl.java:108)
    at org.apache.felix.eventadmin.impl.security.EventAdminSecurityDecorator.sendEvent(EventAdminSecurityDecorator.java:94)
    at com.xxx.yyy.commons.OSGiEventHub.sendEvent(OSGiEventHub.java:200)
    at com.xxx.yyy.can.connections.impl.CANConnectionLog.receiveCANMessages(CANConnectionLog.java:288)
    at com.xxx.yyy.can.connections.impl.CANConnectionMessageAgent.run(CANConnectionMessageAgent.java:70)
    - locked <7f45fe3c8> (a com.bosch.fusion.can.connections.impl.CANConnectionMessageAgent)

"Thread-35" daemon prio=5 tid=7fa7bfa67000 nid=0x10a88b000 waiting on condition [10a88a000]
   java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <7f45ae1b0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
    at java.lang.Thread.run(Thread.java:680)

"Thread-34" daemon prio=5 tid=7fa7be012800 nid=0x10a788000 waiting on condition [10a787000]
   java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <7f45ae1b0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
    at java.lang.Thread.run(Thread.java:680)

"Thread-33" daemon prio=5 tid=7fa7c00dd800 nid=0x10a685000 waiting on condition [10a684000]
   java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <7f45ae1b0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
    at java.lang.Thread.run(Thread.java:680)

"Thread-32" daemon prio=5 tid=7fa7c3001800 nid=0x10a582000 waiting on condition [10a581000]
   java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <7f45ae1b0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
    at java.lang.Thread.run(Thread.java:680)

"Thread-31" daemon prio=5 tid=7fa7c1801800 nid=0x10a47f000 waiting on condition [10a47e000]
   java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <7f45ae1b0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
    at java.lang.Thread.run(Thread.java:680)

"Thread-30" daemon prio=5 tid=7fa7c3001000 nid=0x10a37c000 waiting on condition [10a37b000]
   java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <7f45ae1b0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
    at java.lang.Thread.run(Thread.java:680)

"Thread-29" daemon prio=5 tid=7fa7be016800 nid=0x10bcc7000 waiting on condition [10bcc6000]
   java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <7f45ae1b0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
    at java.lang.Thread.run(Thread.java:680)

"Thread-28" daemon prio=5 tid=7fa7bc82b000 nid=0x10bbc4000 waiting on condition [10bbc3000]
   java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <7f45ae1b0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
    at java.lang.Thread.run(Thread.java:680)

"Thread-27" daemon prio=5 tid=7fa7bfa2f000 nid=0x10bac1000 waiting on condition [10bac0000]
   java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <7f45ae1b0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
    at java.lang.Thread.run(Thread.java:680)

"Thread-26" daemon prio=5 tid=7fa7be016000 nid=0x108ff2000 waiting on condition [108ff1000]
   java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <7f45ae1b0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
    at java.lang.Thread.run(Thread.java:680)


"SCR Component Actor" daemon prio=5 tid=7fa7bc87f800 nid=0x109fa2000 in Object.wait() [109fa1000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <7f46fb9f0> (a java.util.LinkedList)
    at java.lang.Object.wait(Object.java:485)
    at org.apache.felix.scr.impl.ComponentActorThread.run(ComponentActorThread.java:76)
    - locked <7f46fb9f0> (a java.util.LinkedList)
    at java.lang.Thread.run(Thread.java:680)

"CM Event Dispatcher" daemon prio=5 tid=7fa7c0116800 nid=0x109e9e000 in Object.wait() [109e9d000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <7f44e1090> (a java.util.LinkedList)
    at java.lang.Object.wait(Object.java:485)
    at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:76)
    - locked <7f44e1090> (a java.util.LinkedList)
    at java.lang.Thread.run(Thread.java:680)

"CM Configuration Updater" daemon prio=5 tid=7fa7c0116000 nid=0x109d9b000 in Object.wait() [109d9a000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <7f44e53a0> (a java.util.LinkedList)
    at java.lang.Object.wait(Object.java:485)
    at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:76)
    - locked <7f44e53a0> (a java.util.LinkedList)
    at java.lang.Thread.run(Thread.java:680)

"FelixPackageAdmin" daemon prio=5 tid=7fa7bc876000 nid=0x109b07000 in Object.wait() [109b06000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <7f44e5c20> (a org.apache.felix.framework.PackageAdminImpl)
    at java.lang.Object.wait(Object.java:485)
    at org.apache.felix.framework.PackageAdminImpl.run(PackageAdminImpl.java:350)
    - locked <7f44e5c20> (a org.apache.felix.framework.PackageAdminImpl)
    at java.lang.Thread.run(Thread.java:680)

"FelixStartLevel" daemon prio=5 tid=7fa7bc873000 nid=0x109a04000 in Object.wait() [109a03000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <7f44e22d8> (a java.util.ArrayList)
    at java.lang.Object.wait(Object.java:485)
    at org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:244)
    - locked <7f44e22d8> (a java.util.ArrayList)
    at java.lang.Thread.run(Thread.java:680)

"FelixDispatchQueue" prio=5 tid=7fa7bfa27000 nid=0x1098e5000 in Object.wait() [1098e4000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <7f44e6538> (a java.util.ArrayList)
    at java.lang.Object.wait(Object.java:485)
    at org.apache.felix.framework.util.EventDispatcher.run(EventDispatcher.java:924)
    - locked <7f44e6538> (a java.util.ArrayList)
    at org.apache.felix.framework.util.EventDispatcher.access$000(EventDispatcher.java:54)
    at org.apache.felix.framework.util.EventDispatcher$1.run(EventDispatcher.java:106)
    at java.lang.Thread.run(Thread.java:680)

"Finalizer" daemon prio=8 tid=7fa7c0000000 nid=0x108e34000 in Object.wait() [108e33000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <7f44e6520> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
    - locked <7f44e6520> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
    at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

"Reference Handler" daemon prio=10 tid=7fa7bf93e000 nid=0x108d31000 in Object.wait() [108d30000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:485)
    at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
    - locked <7f44e10a8> (a java.lang.ref.Reference$Lock)

"main" prio=5 tid=7fa7bf800800 nid=0x100fb6000 in Object.wait() [100fb5000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <7f45a6180> (a org.apache.felix.framework.util.ThreadGate)
    at org.apache.felix.framework.util.ThreadGate.await(ThreadGate.java:79)
    - locked <7f45a6180> (a org.apache.felix.framework.util.ThreadGate)
    at org.apache.felix.framework.Felix.waitForStop(Felix.java:922)
    at org.apache.felix.main.Main.main(Main.java:295)

"VM Thread" prio=9 tid=7fa7bf939800 nid=0x108c2e000 runnable 
4

2 に答える 2

1

サービスが公開されているかどうかをどのように検出していますか? 別のバンドルからチェックしていますか、それとも Gogo シェルからチェックしていますか? 前者の場合は、サービスをフィルタリングするクラス スペースの非互換性が見られる可能性があります。後者の場合、私にはわかりません。まだ行っていない場合は、Gogo で「inspect sc 14」と入力して、バンドル 14 のサービス機能をチェックし、サービスが提供されているかどうかを確認します。

おそらく私は誤解しています.DNSサービスまたはOSGiサービスについて話しているのですか? DNS の場合、私のコメントは無視してください。

于 2011-08-04T13:31:49.647 に答える
1

設定は確かですか?このタイプの問題の最も一般的な理由は次のとおりです。 ホスト名とファイアウォールの構成が不適切です。

  • ファイアウォールは診断が最も簡単です。ポート 5353/udp が開いていることを確認してください。
  • ホスト名の問題は Linux で最も一般的であり、公開しているサブネットとは別のサブネットでリッスンしていることを意味します。JmDNS インスタンスを作成するときに、ホスト名を修正するか、IP アドレスを指定することができます。
于 2011-08-04T13:54:22.790 に答える