学习JXTA,想先实现一个自定义服务的注册和发现,然后再建立分布式的环境进行路由发现。在对自定义服务注册和发现的过程中,不是很顺利。我用的是jxse2.6自带的例子,将_500_Customized_Advertisement_Example这个服务信息实例化后发布到jack节点下。代码为
AdvertisementFactory.registerAdvertisementInstance(_500_Customized_Advertisement_Example.getAdvertisementType(),
new _500_Customized_Advertisement_Example.Instantiator());
_500_Customized_Advertisement_Example MyAdvertisement=new _500_Customized_Advertisement_Example();MyAdvertisement.SetName("John");MyAdvertisement.SetAge(33);//PeerGroupFactory.newNetPeerGroup().getDiscoveryService();DiscoveryServiceTheDiscoveryService=NetPeerGroup.getDiscoveryService();try{TheDiscoveryService.publish(MyAdvertisement);TheDiscoveryService.remotePublish(MyAdvertisement);Tools.PopInformationMessage(Name,"Publish myAdvertisement");}catch(Exception e){Tools.PopInformationMessage(Name,"Error during publish of _500_Customized_Advertisement");System.out.println("Error during publish of _500_Customized_Advertisement");}
然后用Edge_Maxime_The_Socializer进行远程发现,代码为:
DiscoveryServiceTheDiscoveryService=NetPeerGroup.getDiscoveryService();TheDiscoveryService.getRemoteAdvertisements(null,0,"Name","J*",100,newEdge_Maxime_The_Socializer());
但是结果是不能发现这个服务,是不是我的linster的代码也需要修改呢?很是苦恼!