我正在用geomesa hbase开发一个geoserver,但是当我创建一个新的数据存储时,bigtable.table.name中出现了一些问题。
问题是我所有表的名称都是这样的'published.cityos.fonts',但是当我保存存储时会抛出这样的错误
创建数据存储时出错,请检查参数。错误消息:字符串索引超出范围:-1
我复制了一个表来做测试,并命名为'cityos.fonts',我没有得到任何错误。
有没有可能解决这个问题而不必复制和重命名100个表?
事先非常感谢。
控制台出错:
warn[data.store]-获取新数据存储java.io.ioexception时出错ç 导致原因:java.lang.stringindexoutofboundsexception:字符串索引超出范围:-1位于org.locationtech.geomesa.index.metadata.cachedlazymetadata$.decoderow(cachedlazymetadata)的java.lang.string.substring(未知源)。scala:137)在org.locationtech.geomesa.index.metadata.cachedlazymetadata$$anonfun$getfeaturetypes$1.apply(cachedlazymetadata。scala:57)在org.locationtech.geomesa.index.metadata.cachedlazymetadata$$anonfun$getfeaturetypes$1.apply(cachedlazymetadata。scala:57)在scala.collection.iterator$$anon$11.next(iterator。scala:370)在org.locationtech.geomesa.utils.collection.closeableiterator$$anon$2.next(closeableiterator。scala:36)在scala.collection.iterator$class.tostream(iterator。scala:1180)位于org.locationtech.geomesa.utils.collection.closeableiterator$$anon$2.tostream(closeableiterator.com)。scala:34)在scala.collection.traversableonce$class.toseq(traversableonce。scala:296) 在org.locationtech.geomesa.utils.collection.closeableiterator$$anon$2.toseq(closeableiterator。scala:34)在org.locationtech.geomesa.index.metadata.cachedlazymetadata$class.getfeaturetypes(cachedlazymetadata)上。scala:57)位于org.locationtech.geomesa.hbase.data.hbasebackedmetadata.getfeaturetypes(hbasebackedmetadata)。scala:19)在org.locationtech.geomesa.index.geotools.geomesadatastore.gettypenames(geomesadatastore。scala:137)在org.vfny.geoserver.util.datastoreutils.getdataaccess(datastoreutils。java:97)在org.geoserver.catalog.resourcepool.getdatastore(resourcepool。java:649)
2条答案
按热度按时间laximzn51#
我认为问题不在于表名,而在于第一个表中的额外数据。geomesa希望目录表只包含简单的要素类型元数据。为了确定给定目录中的简单要素类型,geomesa扫描表并使用regex从行值中提取类型名。例如,
abastament_agbarType~attributes
指示类型名称为abastament_agbarType
. 原始表似乎有许多非geomesa行,这导致行regex失败。我在这里创建了一个跟踪问题的票证。我们可以添加try/catch并在无效行上记录警告。然而,即使有了这个修正,在目录中有大量的数据将使
getTypeNames
非常慢,所以如果可能的话你应该避免。tcbh2hod2#
一旦改变了。。。
当我尝试从源代码构建时,当我到达geomesa index api部分时,它停止了。我得到一个编译错误。
我正在使用以下cli命令进行构建:
mvn干净安装-dskiptests-dcheckstyle.skip
当我建立没有改变它的建设正常,没有任何错误
谢谢。