从XPage中的restService获取JSON数据

时间:2017-11-28 19:17:02

标签: java xpages xpages-extlib ssjs

是否可以使用代码而不是使用pathinfo来从restService获取json数据?

寻找类似的东西:getComponent(" restService1")。get ...

<xe:restService id="restService1" pathInfo="rest">
                    <xe:this.service>
                        <xe:jdbcQueryJsonService connectionName="mssql" contentType="application/json">
                            <xe:this.sqlQuery><![CDATA[SELECT * FROM Order]]></xe:this.sqlQuery>
                        </xe:jdbcQueryJsonService>
                    </xe:this.service>
                </xe:restService>

1 个答案:

答案 0 :(得分:1)

如果不深入攻击核心ExtLib REST服务,我认为这是不可能的。

在这些服务中,输出生成并写入定义的输出流,通常是来自HttpResponse的输出。

您有两种选择:

  1. jdbcQueryJsonService 创建自己的休息服务,方法是扩展现有的服务并添加自己的方法来访问输出流
  2. 使用反射来访问包含输出流实例的私有属性
  3. 对于这两种选择,我认为这不值得付出努力。创建自己的与SQL服务器的JDBC连接并将结果转换为自己的JSON要容易得多。

    修改

    不要忘记您正在访问组件。组件不知道输出的内容,输出由渲染器根据组件的当前状态生成。虽然ExtLib REST服务与JSF概念略有不同(它们的输出是由servlet生成的),但模式是相同的。

    这就是没有XPages / JSF组件有这种方法的原因。