Estoy tratando de hacer una aplicación sencillita con JXTA, en la que dos peers se conectan entre ellos.
Uno de ellos (después de haberse ambos unido al mismo grupo) crea un OutputPipe y lo publica.
El otro, descubre al peer (hasta aquí todo perfecto) y realiza una consulta sobre sus ADV publicados, mediante la siguiente sentencia:
Código:
("pa" es el PeerAdvertisement que ha encontrado y listenPipe es el listener que usará para procesar la respuesta).myDiscoveryService.getRemoteAdvertisements(pa.getPeerID().toString(), DiscoveryService.ADV, null, null, 1, listenPipe);
Pues bien, el listenPipe lo tengo de la siguiente forma:
Código:
Se ejecuta el listener, y se lanza la siguiente excepciónlistenPipe = new DiscoveryListener() { public void discoveryEvent(DiscoveryEvent de) { String nom; PipeAdvertisement pipe; ModuleSpecAdvertisement mod; DiscoveryResponseMsg msg = de.getResponse(); Enumeration en = msg.getAdvertisements(); while (en.hasMoreElements()) { mod = (ModuleSpecAdvertisement)en.nextElement(); try { pipe = mod.getPipeAdvertisement(); System.out.println ("Encontrado pipe " + pipe.getName()); } catch (Exception e) { e.printStackTrace(); } } } };
Código:
Y soy incapaz de entender por qué, he consultado muchos ejemplos y tutoriales en Internet y no veo dónde está el fallo. GRAVE: Uncaught Throwable in listener :Executor - 1 java.lang.ClassCastException: net.jxta.impl.protocol.ModuleImplAdv cannot be cast to net.jxta.protocol.ModuleSpecAdvertisement