Java 从XPages中的restService获取JSON数据

Java 从XPages中的restService获取JSON数据,java,xpages,xpages-extlib,ssjs,Java,Xpages,Xpages Extlib,Ssjs,是否可以使用代码而不是pathinfo从restService获取json数据 正在查找类似以下内容:getComponent(“restService1”)。获取 如果不深入攻击核心ExtLib REST服务,我认为这是不可能的 在这些服务中,输出被生成并写入定义的输出流,该输出流通常是来自HttpResponse的输出流 对此,您有两个选项: 通过扩展现有的rest服务,为jdbcQueryJsonService创建自己的rest服务,并添加自己的方法来访问输出流 使用反射访问保存outpu

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

正在查找类似以下内容:getComponent(“restService1”)。获取


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

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

对此,您有两个选项:

  • 通过扩展现有的rest服务,为jdbcQueryJsonService创建自己的rest服务,并添加自己的方法来访问输出流
  • 使用反射访问保存outputstream实例的私有属性
  • 对于这两种选择,我认为这不值得努力。创建自己到SQL server的JDBC连接并将结果转换为JSON要容易得多

    编辑:

    不要忘记您正在访问一个组件。组件对输出一无所知,输出由渲染器根据组件的当前状态生成。虽然extlibrest服务与JSF概念有点不同(它们的输出由servlet生成),但模式是相同的


    这就是为什么没有XPages/JSF组件有这样的方法

    我认为rest服务控件是为通过URL访问它们而构建的。不过你可以把参数(比如你的getFunction)作为字符串发布抱歉,我不明白你的意思。URL可以访问许多组件,例如,Ajax功能有特殊的接口。
    <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>