2016-08-03 6 views
0

Ich versuche, ein "Hello World" Beispiel zu starten. Das Problem ist, ich immer die folgende Fehlermeldung, wenn ich versuche das HelloWorld.java Beispiel zu laufen ...JXTA Konfigurationsproblem: jxta: HTTPTransportAdvertisement nicht registriert

Fatal error -- Quitting 
java.util.NoSuchElementException: key 'jxta:HTTPTransportAdvertisement' not registered. 
    at net.jxta.util.ClassFactory.getInstantiator(ClassFactory.java:355) 
    at net.jxta.document.AdvertisementFactory.newAdvertisement(AdvertisementFactory.java:249) 
    at net.jxta.platform.NetworkConfigurator.createHttpAdv(NetworkConfigurator.java:1833) 
    at net.jxta.platform.NetworkConfigurator.<init>(NetworkConfigurator.java:528) 
    at net.jxta.platform.NetworkConfigurator.newAdHocConfiguration(NetworkConfigurator.java:436) 
    at net.jxta.platform.NetworkManager.configure(NetworkManager.java:321) 
    at net.jxta.platform.NetworkManager.startNetwork(NetworkManager.java:402) 
    at tutorial.helloworld.HelloWorld.main(HelloWorld.java:90) 

Jetzt von Graben um durch den Code und dabei einige der NoSuchElementException Lesen kommt aus der Tatsache, das ein XML-Element oder Schlüssel kann in der Konfiguration nicht gefunden werden. OK, das ist cool, aber beim Lesen der Dokumentation, wenn NetworkManager.ConfigMode ADHOC ist, sieht es so aus, als ob Sie keine Konfigurationsdatei benötigen.

Ich habe versucht mit ein wenig Hoffnung, dass das Ausschalten meiner Firewall und Host und Netzwerk IPS und Antivirus kann helfen, aber nein. Sysinternals Process Monitor verwenden Ich sehe nicht, dass eclipse.exe oder java.exe versuchen, eine PlatformConfig-Datei zu lesen oder sogar nach der reconf-Datei zu suchen. Das führt mich wieder zu der Annahme, dass ich keine Konfigurationsdatei benötige.

Ich benutze JXTA 2.7 aus [https://svn.java.net/svn/jxta-jxse~svn/, Tag: 2.7] in Eclipse Neon mit JDK 1.8. Ich habe die Abhängigkeiten von https://sourceforge.net/projects/practicaljxta/files/ in meinem Projekt aufgenommen.

Der Beispielcode befand sich im Pfad tutorials/src/main/java/tutorial/HelloWorld/HelloWorld.java.

Ich möchte verstehen, warum JXTA die jxta: HTTPTransportAdvertisement nicht registrieren kann und wie das Problem behoben werden kann.

+0

etwas off topic: warum Versuchen Sie, den Beispielcode für eine tote Technologie auszuführen? https://en.wikipedia.org/wiki/JXTA#Status –

+0

@GregChabala Die Technologie hat genau das, was ich suche, ein P2P-Framework, um eine weitere Anwendung zu erstellen. Wenn nichts anderes, sollte ich es zum Laufen bringen, wird es beweisen, dass das, was ich tun möchte, auch getan werden kann, wenn der P2P Teil neu geschrieben werden muss. Wenn Sie Alternative zu JXTA wissen, bin ich ganz Ohr. Prost! – therealdtw

Antwort

0

Beim Debuggen des JXTA/JXSE-Codes habe ich herausgefunden, dass nach einer Datei in einem META-INF-Ordner gesucht wird, die in der eingebauten JAR-Datei existiert. Dies ist etwas, das ich nicht in meinem Build von der Quelle hatte.

Eine wahrscheinliche Lösung wäre, Ihre eigene JAR-Datei zu erstellen und den Ordner META-INF im Quellcode src/main/resources einzubeziehen, aber ich kann diese Methode nicht vollständig verbürgen.

Mein Entschluß war die binäre Version von JXSE von https://oss.sonatype.org/service/local/repositories/releases/content/com/kenai/jxse/jxse/2.7/jxse-2.7.jar herunterzuladen, die in den Projekten Maven-Repository ist und es in meinem Projekt zusammen mit der erforderlichen jar 's für jxse-2.7.jar von https://sourceforge.net/projects/practicaljxta/files/lib-dependencies-2.7.zip/download

Verwandte Themen