WSO2 ESB,无法获取记录或使用SQL Server数据库执行操作

时间:2016-07-14 23:32:03

标签: .net wso2 wso2esb sql-server-2014

我们在.net应用程序中使用WSO2 ESB。我成功连接到我们的SQL Server 2014数据库,但我无法获取记录或执行任何操作。任何想法都会非常感激。

1 个答案:

答案 0 :(得分:1)

ESB的目的不是从数据库中获取记录。

如果您使用DBLookup Mediator。 根据文档: DBLookup介体可以从结果集中的一行设置属性。它不能返回多行

同样,DBLookup将接收到的数据注入属性,而这些数据在soap文档中不可见,它们只是作为属性元素驻留在轴引擎中。

你可以记录这些属性: 假设DBLookup定义结果元素id,name,age,那么你可以将从数据库接收的值记录为:

<log>
   <property name="ID" expression="get-property('id')" />
   <property name="NAME" expression="get-property('name')" />
   <property name="AGE" expression="get-property('age')" />
</log>

获得多行的可能解决方案:

ESB中有模式可以提供帮助。 Y可以管理DBLookup以将数据作为字符串返回,其中包含以逗号分隔的所有主键。这些键是行的引用,需要从DB获取。然后使用 for-each 中介和xslt函数拆分,迭代键并进行另一次 DBLookup 调用,以获得与该键对应的实际数据。即便如此,你必须将属性中的数据注入到消息本身中。

这很难做到很难调试。

更容易安装DSS功能创建data_service并在您需要使用任何介体呼叫,发送

的数据时向其发出请求