我想发现GeoMesa技术。

我尝试在GeoMesa的官方网站上运行快速入门。

我使用由docker-compose安装的Kafka Data sore(用于Kafka代理的端口9092,用于Kafka管理器的端口9000和用于Zookeeper服务器的端口2181)以及GeoMesa的版本2.4.0-SNAPSHOT

就像它写在GeoMesa教程上一样,我运行以下命令行:

从GitHub获取教程:

git clone https://github.com/geomesa/geomesa-tutorials.git
cd geomesa-tutorials


用Maven编译:

mvn clean install -pl geomesa-tutorials-kafka/geomesa-tutorials-kafka-quickstart -am


使用Kafka代理的地址localhost:9092和Zookeeper服务器的localhost:2181地址运行应用程序:

java -cp geomesa-tutorials-kafka/geomesa-tutorials-kafka-quickstart/target/geomesa-tutorials-kafka-quickstart-2.4.0-SNAPSHOT.jar org.geomesa.example.kafka.KafkaQuickStart --kafka.brokers localhost:9092 --kafka.zookeepers localhost:2181


当我运行最后一个命令行时,控制台上将引发错误:


java.lang.IncompatibleClassChangeError:方法org.locationtech.geomesa.security.AuthorizationsProvider.apply(Ljava / util / Map; Ljava / util / List;)Lorg / locationtech / geomesa / security / AuthorizationsProvider;必须为InterfaceMethodref常量
在org.locationtech.geomesa.security.package $ .getAuthorizationsProvider(package.scala:57)
在org.locationtech.geomesa.kafka.data.KafkaDataStoreFactory $ .buildAuthProvider(KafkaDataStoreFactory.scala:194)
在org.locationtech.geomesa.kafka.data.KafkaDataStoreFactory $ .buildConfig(KafkaDataStoreFactory.scala:175)
在org.locationtech.geomesa.kafka.data.KafkaDataStoreFactory.createDataStore(KafkaDataStoreFactory.scala:46)
在org.locationtech.geomesa.kafka.data.KafkaDataStoreFactory.createDataStore(KafkaDataStoreFactory.scala:37)
在org.geotools.data.DataAccessFinder.getDataStore(DataAccessFinder.java:121)
在org.geotools.data.DataStoreFinder.getDataStore(DataStoreFinder.java:71)
在org.geomesa.example.quickstart.GeoMesaQuickStart.createDataStore(GeoMesaQuickStart.java:105)
在org.geomesa.example.kafka.KafkaQuickStart.createDataStore(KafkaQuickStart.java:68)
在org.geomesa.example.quickstart.GeoMesaQuickStart.run(GeoMesaQuickStart.java:79)
在org.geomesa.example.kafka.KafkaQuickStart.main(KafkaQuickStart.java:133)


我怀疑错误来自此方法org.geomesa.example.quickstart.GeoMesaQuickStart.createDataStore

我尝试使用由Docker映像安装的Redis服务器进行相同的快速入门,但得到的错误完全相同。

最佳答案

命令行java --version'给我这个输出:openjdk 11.0.2 2019-01-15。我没有Java 8版本吗?


根据您链接到的文档,先决条件之一是使用Java 8运行GeoMesa。

关于java - 尝试使用Kafka数据存储运行Geomesa快速入门时出现Java错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55924697/

10-10 05:52