【问题标题】:using http service on orbeon form在 orbeon 表单上使用 http 服务
【发布时间】:2018-11-17 15:11:28
【问题描述】:

我正在尝试设置要在我的表单构建器控件元素中使用的 http 服务,并从文本字段传递参数。但仍然没有显示输出。

这是我在 orbeon.com 网站上创建的用于描述的表格(应用程序和表格名称是 csahat): http://demo.orbeon.com/demo/fr/orbeon/builder/edit/0860411ecf1bff6128bd802784ee22a33b0bab68

http service description

资源网址: http://localhost:3000/posts

响应正文:

[
  {
    "id": 1,
    "title": "json-server",
    "author": "typicode"
  }
]

服务响应动作 /响应/行/标题

为什么我仍然无法在输出控件上显示值? 有没有办法调试看看出了什么问题?

【问题讨论】:

  • 更新:orbeon 表单安装在本地,这就是 http 服务指向 localhost 的原因。我在 demo.orbeon.form 中创建了表单,因此任何人都可以轻松查看我的配置

标签: orbeon


【解决方案1】:

从运行 Orbeon Forms 的服务器调用服务,因此如果您在 http://demo.orbeon.com/ 上运行 Orbeon Forms,则无法使用 http://localhost:3000/ 调用您自己计算机上的服务。此 URL 将访问 demo.orbeon.com 服务器,该服务器很可能在其 3000 端口上没有运行任何东西。

相反,您很可能希望在本地安装 Orbeon Forms。这也将允许您监控orbeon.log,以防调用服务失败,因为您可以在那里找到更详细的信息。

【讨论】:

  • 是的,orbeon 表单安装在本地,这就是服务位于 localhost 的原因。我在 demo.orbeon.com 中创建了表单,因此任何人都可以轻松查看我的设置
  • 知道了@Chris。然后我建议您按照dev config 设置您的日志记录,运行tail -f orbeon.log(或您的操作系统上的等效项),重现该问题,并检查您是否在日志中看到任何有用的信息。如果这有帮助,你会告诉我的。
  • 我使用 Form Builder 而不是 XForm 创建了表单,它仍然适用吗?
  • @Chris,是的:使用 Form Builder 创建的表单使用 XForms,特别是 xf:submission,它在运行时会在 orbeon.log 中记录大量有用的调试信息。你会告诉我你在那里找到了什么。
  • @Chris 你知道如何填充调用你的服务,或者你仍然有这个问题吗?
【解决方案2】:

您的回复路径/response/row/title 不正确。

您收到一个 JSON 对象返回,它映射到以下 XML 数据结构:

<json type="array">
    <_ type="object">
        <id type="number">1</id>
        <title>json-server</title>
        <author>typicode</author>
    </_>
</json>

所以要访问第一个数组项的标题,可以这样写:

/json/_[1]/title

【讨论】:

  • 如果我有不同的 JSON 对象,我如何知道到 XML 的映射?
  • 理想情况下,Form Builder 应该可以更好地帮助您。映射非常简单,您可以找到它的描述in the XForms 2.0 spec。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-01
  • 1970-01-01
  • 2014-04-29
  • 2016-02-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多