我们在.net应用程序中使用WSO2 ESB。我成功连接到我们的SQL Server 2014数据库,但我无法获取记录或执行任何操作。任何想法都会非常感激。
答案 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并在您需要使用任何介体呼叫,发送
的数据时向其发出请求