0

「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 を登録できない理由と、問題を修正する方法を理解したいと思います。

4

1 に答える 1

0

JXTA/JXSE コードをデバッグすると、ビルドされた jar ファイルに存在する META-INF フォルダー内のファイルを探していることがわかりました。これは、ソースからのビルドにはなかったものです。

考えられる解決策の 1 つは、独自の jar ファイルを作成し、ソース src/main/resources にある META-INF フォルダーを含めることですが、その方法を完全に保証することはできません。

私の解決策は、 https: //oss.sonatype.org/service/local/repositories/releases/content/com/kenai/jxse/jxse/2.7/jxse-2.7.jar から JXSE のバイナリ ビルドをダウンロードすることでした。プロジェクトMavenリポジトリを作成し、 https: //sourceforge.net/projects/practicaljxta/files/lib-dependencies-2.7.zip/downloadからjxse-2.7.jarに必要なjarとともにプロジェクトに含めます

于 2016-08-04T01:45:28.693 に答える