我正在尝试运行“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)
现在通过挖掘代码并阅读 NoSuchElementException 来自于在配置中找不到 XML 元素或键的事实。好的,这很酷,但是当 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/ ,标签:2.7] 的 JXTA 2.7。我在我的项目中包含了来自https://sourceforge.net/projects/practicaljxta/files/的依赖项。
示例代码位于 tutorials/src/main/java/tutorial/HelloWorld/HelloWorld.java 路径中。
我想了解为什么 JXTA 无法注册 jxta:HTTPTransportAdvertisement 以及如何更正该问题。