我面临一个奇怪的问题。我已经为JmDNS 3.1.6创建了OSGi捆绑包,并且已经在Equinox中成功地使用了该捆绑包来发布服务近两年了。我最近已迁移到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
最佳答案
您确定安装吗?此类问题的最常见原因是:配置错误的主机名和防火墙。
防火墙是最容易诊断的,请检查端口5353 / udp是否为
打开。
主机名问题在Linux上最常见,这意味着您
正在您发布的子网之外的另一个子网中侦听。您
可以在创建JmDNS实例时修复指定IP地址的主机名。