「Hello World」サンプルを実行しようとしています。問題は、HelloWorld.java の例を実行しようとすると、次のエラーが発生し続けることです...
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)
ここで、コードを掘り下げて読み取りを行うと、構成で XML 要素またはキーが見つからないという事実から NoSuchElementException が発生します。それはクールですが、NetworkManager.ConfigMode が ADHOC の場合にドキュメントを読むと、構成ファイルは必要ないように見えます。
ファイアウォールとホストとネットワークの IPS とウイルス対策をオフにするとうまくいくかもしれないという希望を持って試してみましたが、そうではありません。Sysinternals Process Monitor の使用 eclipse.exe または java.exe が PlatformConfig ファイルを読み取ろうとしたり、reconf ファイルを探したりしようとしていることがわかりません。したがって、これにより、構成ファイルは必要ないと (正しいか間違っているかを問わず) 信じるようになります。
JDK 1.8 の Eclipse Neon で [ https://svn.java.net/svn/jxta-jxse~svn/、Tag: 2.7] のJXTA 2.7 を使用しています。プロジェクトにhttps://sourceforge.net/projects/practicaljxta/files/からの依存関係を含めました。
サンプル コードは、tutorials/src/main/java/tutorial/HelloWorld/HelloWorld.java パスにあります。
JXTA が jxta:HTTPTransportAdvertisement を登録できない理由と、問題を修正する方法を理解したいと思います。