Load data into AWS Neptune via Apache Jena: quot;Missing #39;query#39; gt; or #39;update#39; parameter for POST requestquot;(通过用于POST请求的Apache Jena:q;Missing#39;Query或#39;UPDATE39;参数将数据加载到AWS海王星中)
问题描述
我正在尝试通过Apache Jena(3.14.0)将数据从普通的Spring Boot应用程序加载到AWS海王星存储中。
我使用的代码是编写的,可以与包括Anzo和fuseki在内的几个三元组存储一起工作。
从我本地的开发环境连接到海王星商店的设置是一台Rube-Goldberg机器,我不好意思在这里讨论-然而,到目前为止,连接是有效的。
我的问题特别是将数据加载到存储区(考虑POST操作)。
通过RDFConnection#load(String, Model)习惯用法加载JenaModel时,操作失败。
堆栈跟踪如下:
org.apache.jena.atlas.web.HttpException: 400 - Bad Request
at org.apache.jena.riot.web.HttpOp.exec(HttpOp.java:1091)
at org.apache.jena.riot.web.HttpOp.execHttpPost(HttpOp.java:721)
at org.apache.jena.rdfconnection.RDFConnectionRemote.lambda$doPutPost$9(RDFConnectionRemote.java:458)
at org.apache.jena.rdfconnection.RDFConnectionRemote.exec(RDFConnectionRemote.java:668)
at org.apache.jena.rdfconnection.RDFConnectionRemote.doPutPost(RDFConnectionRemote.java:453)
at org.apache.jena.rdfconnection.RDFConnectionRemote.load(RDFConnectionRemote.java:366)
at [my loading code here]
也许更有帮助的是,响应中的错误消息是:
Http异常响应 {";code";:";MissingParameterException";,&Quot;DetailedMessage&Quot;:缺少‘Query’ 或POST请求的‘UPDATE’参数:[某些UUID]&Quot;}
有关常见错误的AWSdocs在这里似乎毫无用处。
错误消息的文本似乎很清楚-在某种程度上-请求缺少参数。
首先我还没有仔细了解Jena是如何构建请求的(因为我使用该框架可以很好地处理其他三元组存储),我也不知道如何从RDFConnectionjavadoc添加额外的参数。
我也没有尝试过手动向存储发送SPARQL请求,例如通过REST客户端--但我首先想使用Jena,所以在更远的地方逗留可能并不理想。
关于在Jena中使用海王星的AWStutorial非常基本,只从三元组存储中读取-因此再次声明,那里没有cookie。
同样,相同的堆栈、相同的代码、相同的数据、其他存储-->;工作正常。
有没有什么简单的方法来解决这个问题,或者我可能错过了一些文档/示例?
推荐答案
通过RDF4J批量加载到Netpune似乎是可行的两步过程。编写了生成RDF(NT文件)的程序,然后使用RDF4J控制台将其手动加载到海王星。
猜测:如果我们更深入地研究RDF4J以及海王星是如何接受来自它的批量加载的,那么在同一个程序中完成整个加载可能是可行的。
$ ./bin/console.sh
04:10:40.412 [main] DEBUG org.eclipse.rdf4j.common.platform.PlatformFactory - os.name = linux
04:10:40.416 [main] DEBUG org.eclipse.rdf4j.common.platform.PlatformFactory - Detected Posix platform
Connected to default data directory
RDF4J Console 3.6.3
Working dir: /home/bitnami/tools/eclipse-rdf4j-3.6.3
Type 'help' for help.
> create sparql
Please specify values for the following variables:
SPARQL query endpoint: https://yyy.cluster-xxx.us-east-1.neptune.amazonaws.com:8182/sparql
SPARQL update endpoint: https://yyy.cluster-xxx.us-east-1.neptune.amazonaws.com:8182/sparql
Local repository ID [endpoint@localhost]: test
Repository title [SPARQL endpoint repository @localhost]: test Graph data model PoC
Repository created
> open test
test> sparql select ?s ?p ?o where {?s ?p ?o} limit 10
Evaluating SPARQL query...
+------------------------+------------------------+------------------------+
| s | p | o |
+------------------------+------------------------+------------------------+
| <https://test.com/s> | <https://test.com/p> | <https://test.com/o> |
+------------------------+------------------------+------------------------+
1 result(s) (671 ms)
test> clear
test> load /home/bitnami/projects/model/sparql-client/output/model.nt
这篇关于通过用于POST请求的Apache Jena:&q;Missing';Query&>或';UPDATE&39;参数将数据加载到AWS海王星中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:通过用于POST请求的Apache Jena:&q;Missing';Query&>或';UPDATE&39;参数将数据加载到AWS海王星中
- 从 finally 块返回时 Java 的奇怪行为 2022-01-01
- C++ 和 Java 进程之间的共享内存 2022-01-01
- 如何使用WebFilter实现授权头检查 2022-01-01
- 将log4j 1.2配置转换为log4j 2配置 2022-01-01
- value & 是什么意思?0xff 在 Java 中做什么? 2022-01-01
- Safepoint+stats 日志,输出 JDK12 中没有 vmop 操作 2022-01-01
- Java包名称中单词分隔符的约定是什么? 2022-01-01
- Jersey REST 客户端:发布多部分数据 2022-01-01
- Spring Boot连接到使用仲裁器运行的MongoDB副本集 2022-01-01
- Eclipse 插件更新错误日志在哪里? 2022-01-01