Estou tentando executar um exemplo de compartilhador de arquivos que Utiliza JXTA com CMS, no entanto não tenho sucesso quando se trata da busca do arquivo (note que a publicação ocorre corretamente).
como posso resolver este problema.
import java.io.File;
import net.jxta.peergroup.NetPeerGroupFactory;
import net.jxta.peergroup.PeerGroup;
import net.jxta.share.CMS;
import net.jxta.share.ContentAdvertisement;
import net.jxta.share.ContentManager;
import net.jxta.share.client.CachedListContentRequest;
public class ClasseExemplo{
private CMS cms = null;
private PeerGroup peerGroup = null;
private int numeroPublicacoes = 0;
public ClasseExemplo(File file, String nomeBusca){
startJXTA();
iniciaSessaoCMS();
publicaArquivo(file);
verificaPublicacao();
iniciaBusca(nomeBusca);
}
public void startJXTA(){
System.out.print("Iniciando JXTA ... ");
try {
peerGroup = new NetPeerGroupFactory().getInterface();
} catch (Exception e) {
System.out.println("Falhou");
e.printStackTrace();
System.exit(1);
}
System.out.println("[OK]");
}
public void iniciaSessaoCMS(){
System.out.print("Iniciando Sessão CMS ... ");
try {
cms = new CMS();
cms.init(peerGroup, null, peerGroup.getPeerGroupAdvertisement());
cms.startApp(new File("cliente"));
} catch (Exception e) {
System.out.println("[Falhou]");
e.printStackTrace();
System.exit(1);
}
System.out.println("[OK]");
}
public void publicaArquivo(File file){
System.out.print("Publicando arquivo ... ");
try {
ContentManager contentManager = cms.getContentManager();
numeroPublicacoes = contentManager.getContent().length;
contentManager.share(file);
} catch (Exception e) {
System.out.println("[Falhou]");
e.printStackTrace();
System.exit(1);
}
System.out.println("[OK]");
}
public void verificaPublicacao(){
System.out.print("Verificando a publicação do arquivo ... ");
try {
ContentManager contentManager = cms.getContentManager();
if(contentManager.getContent().length > numeroPublicacoes){
System.out.println("[Confirmada]");
System.out.println("\t Existem "+contentManager.getContent().length+" publicações.");
} else {
System.out.println("[Não Confirmada]");
}
} catch (Exception e) {
System.out.println("[Falhou]");
e.printStackTrace();
System.exit(1);
}
}
public void iniciaBusca(String fileName){
System.out.print("Iniciando Busca ... ");
try{
ListRequestor requestor = new ListRequestor(peerGroup,fileName);
requestor.activateRequest();
requestor.getResults();
System.out.println("[OK]");
} catch (Exception e) {
System.out.println("[Falhou]");
e.printStackTrace();
System.exit(1);
}
}
/**
* Metodo Principal da Classe
*/
public static void main(String[] args){
File file = new File("D:/Documentos/espanhol.txt");
String nomeBusca = "espanhol.txt";
new ClasseEcemplo(file, nomeBusca);
}
}
class ListRequestor extends CachedListContentRequest{
public ListRequestor(PeerGroup group, String nomeBuscar) {
super(group, nomeBuscar);
}
public void notifyMoreResults(){
try {
ContentAdvertisement[] searchResults = getResults();
System.out.println("Número de arquivos encontrados: "+searchResults.length);
} catch (Exception e) {
System.out.println("FAlha no sistema");
e.printStackTrace();
System.exit(1);
}
}
public void notifyDone() {
System.out.println("Requestor done");
}
}