apache - HTTP PUT 删除芝麻中的三元组

标签 apache tomcat curl put sesame

我正在尝试通过 cURL 使用 http PUT 来更新我在 openrdf-sesame 中的三重存储,但是我遇到了一个我找不到解决方案的问题。

使用 POST 时,三重数据完美上传。

但是然后使用 PUT,而不是添加提供的数据,它会从我的存储库中删除所有数据。我在详细模式下运行了 cURL,它返回了预期的 HTTP 状态代码。

我已经添加了

<init-param>
<param-name>readonly</param-name>
<param-value>false</param-value>
</init-param>

到 Apache Tomcat 的 web.xml, 我也试过这里的指南:HTTP PUT Guide ,但这也没有帮助。

编辑 以下是我的批处理文件中的 cURL 命令:

call "%curl%" -# -X POST %endpoint%/statements -H "Content-Type:application/x-trig;charset=UTF-8" -d @%%X
call "%curl%" -# -X PUT %endpoint%/statements -H "Content-Type:application/x-trig;charset=UTF-8" -d @%%X

本质上是:

curl.exe -# -X POST http://myendpoint/statements -H "Content-Type:application/x-trig;charset=UTF-8" -d @MyTrigFile.trig
curl.exe -# -X PUT http://myendpoint/statements -H "Content-Type:application/x-trig;charset=UTF-8" -d @MyTrigFile.trig

目前,我已禁用身份验证,但除此之外我还会包含一个 -u user:password 参数。

最佳答案

我刚刚使用您调用 curl 的确切方式运行了一些测试,但我无法重现该问题(使用 Sesame 版本 2.6.8):它在这里按预期工作。

我能想到的唯一可能原因是您的 TriG 文件有语法错误,而 Sesame 无法报告。

另一个可能的问题是您的期望:您执行的命令将完全清除整个 存储库并将数据替换为您的 TriG 文件的内容。您是否期待其他东西?

要进一步调试它,您能否查看 Sesame 服务器日志并告诉我们它是否显示任何警告或错误?服务器日志可通过转至 http://<server:port>/openrdf-sesame/ 查看。在浏览器中单击左侧菜单中的“系统”。

关于apache - HTTP PUT 删除芝麻中的三元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11956479/

相关文章:

java - 用Java解析文档结构

linux - 在专用主机上安装 Apache 服务器

java - 登录后无法从 OpenAM 获取 uid

apache - 网站链接显示 Apache HTTP Server 文档

python - django ALLOWED_HOSTS 不工作

tomcat - 将应用程序部署到tomcat中的问题

java - StartupError > 如果 XML 文件有 ${<>} 那么服务器没有启动

python - 指示 Scrapy 忽略站点的内容长度

curl - ElasticSearch没有 curl 的数据节点

php - 如何用正则表达式解析html标签?