如何在 ADF 中的 Web 服务和 ejb 数据控件之间创建结果数据控件?

How to make a result datacontrol between a webservice and ejb datacontrol in ADF?

我需要使用网络服务调用的结果和来自另一个数据库的 table 创建一个 table,我该如何在 ADF 中执行此操作?

谢谢

聚合两个信息源的最佳方式是编写使用ADF业务组件:

  1. 为数据库 table 创建一个基于 SQL 的视图对象 table。
  2. 覆盖 ViewObjectImpl.executeQueryForCollection() 并从此点以编程方式调用您的 Web 服务。您遍历 Web 服务 return 并且对于您执行的每个结果:

    行行=this.createRow(); this.insertRow(行); row.setAttribute("..", "..."); ......

然后,从数据源的角度来看,您将视图对象用作任何普通视图对象。

您还可以在应用程序模块的自定义方法中聚合您的逻辑(数据库调用和 Web 服务调用)。该方法执行包含 return 所有记录的 VO,然后遍历 VO 中的现有记录,获取 ID 并调用 Web 服务。在 Web 服务 returns 之后,您可以将来自 Web 服务的行添加到基于数据库的 vo。

当显示在 UI 中时,您的 VO 将同时包含来自 DB 和 Webservice 的记录。

基本上,您需要一个模型层组件来将两个数据源合并在一起。 这可以是 ADF BC ViewObjects,但它也可以是一个简单的 Java class,它可以访问您的 WebService 和数据库,合并数据并公开带有 getter 和 setter 的集合。 然后,您可以将 Java class 作为数据控件公开,并将其作为 table.

拖到页面上