Problema con DiscoveryListener

David
09 de Agosto del 2010
Estoy haciendo pruebas con la publicación y descubrimiento de grupos en JXTA.
En un servidor creo y publico un grupo y en un programa cliente lo
descubro y me uno a él.

Pues bien, si inicio el servidor antes que el cliente, todo marcha bien.
Pero si lo hago al contrario, no detecta nunca el grupo.
¿No se supone que el listener que se utiliza en getRemoteAdvertisement
debería detectar cuándo se ha publicado el grupo de forma asíncrona (es
decir, cuando después se inicie el servidor)?

Este es el código que tengo:


public void buscarGrupos() {
texto.append("Buscar grupos...n");

DiscoveryListener listen = new DiscoveryListener() {

public void discoveryEvent(DiscoveryEvent de) {
String nombre = "---";
PeerGroupAdvertisement pga;

texto.append("Grupo encontrado");
DiscoveryResponseMsg msg = de.getResponse();
Enumeration en = msg.getAdvertisements();
while (en.hasMoreElements()) {
pga = (PeerGroupAdvertisement)en.nextElement();
texto.append("Grupo encontrado: " + pga.getName() +
"n");
if (pga.getName().equals("UNED")) {
unirseAlGrupo(pga);
}
}
}
};


myDiscoveryService.getRemoteAdvertisements(null,
DiscoveryService.GROUP, null, null, 5, listen);
}