1

我正在使用 JXTA 2.5 来实现 P2P 拍卖应用程序。在那里,我需要实现发布和发现“Product_Advertisement”以在市场组中的同行上宣传可用产品。我创建了一个自定义 Product_Advertisement 类型,扩展了 Advertisement 超类。这是一个发布的示例广告:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jxta:ProductAdvertisement>
<jxta:ProductAdvertisement xml:space="default" xmlns:jxta="http://jxta.org">
<ID>
    urn:jxta:jxta-Null
</ID>
<name>
Sample Product
<name/>

<price>
    23.50
</price>
<quantity>
    4
</quantity>
<exchangeProducts/>
</jxta:ProductAdvertisement>

即使“Product_Advertisement”的发布没有问题,但广告的发现并没有像我预期的那样发生。当我使用 peergroup 的 discoveryService 并捕获发布的广告时,这是我使用接收到的广告的 .toString() 时收到的内容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jxta:MIA>
<jxta:MIA xml:space="default" xmlns:jxta="http://jxta.org">
<MSID>
    urn:jxta:uuid-DEADBEEFDEAFBABAFEEDBABE000000010206
</MSID>
<Desc>
    Default Network PeerGroup reference implementation
</Desc>
<Comp>
    <Efmt>
        JDK1.4.1
    </Efmt>
    <Bind>
        V2.0 Ref Impl
    </Bind>
</Comp>
<Code>
    net.jxta.impl.peergroup.ShadowPeerGroup
</Code>
<PURI>
    http://jxta-jxse.dev.java.net/download/jxta.jar
</PURI>
<Prov>
    sun.com
</Prov>
<Parm>
    <Svc>
        urn:jxta:uuid-DEADBEEFDEAFBABAFEEDBABE000000100106
    </Svc>
    <Svc>
        urn:jxta:uuid-DEADBEEFDEAFBABAFEEDBABE0000000E0106
    </Svc>
    <Svc>
</Parm>
</jxta:MIA>

有人可以告诉我我做错了什么吗?

提前致谢, 迪里帕

4

1 回答 1

0

在 JXTA 中定制广告有点棘手。为简单起见,请查看 Scribd 上在线提供的 Practical JXTA II 书籍作为示例。

从您提到的情况来看,您的搜索代码肯定存在问题。您的广告也很有可能未“注册”。如果您在 NAT 后面使用对等体,请记住 2.5 存在错误。您需要使用 2.6 或 2.7。

于 2011-06-27T15:58:49.140 回答