【发布时间】:2017-03-29 11:09:45
【问题描述】:
我是WSO2的新手,我有以下疑问。
我正在从事一个 ESB 项目。在 链中有这个 header 中介
<?xml version="1.0" encoding="UTF-8"?>
<api context="/glisTest2" name="glisTest2" xmlns="http://ws.apache.org/ns/synapse">
<resource methods="GET">
<inSequence>
<!-- Create empty message to get all samples from DSS -->
<payloadFactory media-type="xml">
<format>
<body/>
</format>
<args>
<arg evaluator="xml" expression="get-property('uri.var.int_val')" xmlns:ns="http://org.apache.synapse/xsd" xmlns:ns3="http://org.apache.synapse/xsd"/>
</args>
</payloadFactory>
<!--
Adding an header that defines the action related to the "FindNotProcessed" DSS service
used to retrieve all the unprocessed resource on the DB.
-->
<header name="Action" scope="default" value="urn:FindNotProcessed"/>
...................................................................
...................................................................
...................................................................
</inSequence>
如您所见,header 调解器被链接在 payloadFactory 调解器之后,该调解器构建了一个必须发送到 DSS 的空消息服务。
标头中介:
<header name="Action" scope="default" value="urn:FindNotProcessed"/>
添加一个标头,指定必须在 DSS 服务上调用的 操作名称,该操作实际上被命名为 FindNotProcessed 并且它与定义的查询相关联。
好吧,我的疑问是:
1) value 属性的值指定必须在 DSS 服务上执行的操作的名称,在这种情况下,此值为 瓮:FindNotProcessed。
放在要执行的操作名称之前的 urn: 前缀究竟是什么意思?
2) header 中介定义也包含此属性 name="Action"。
究竟代表什么?是否必须在 Action 上设置中介名称或值以获取某些语义含义?它只是一个名称还是存在该字段具有语义行为的一组可能值?
3) 所以调用 DSS 服务的正确方法是:使用 payloadFactory 中介创建消息,并用 header 链接它中介者指定必须在 DSS 服务上执行的操作的名称,然后链接一个执行调用的 callout 中介者。我以这种方式完成并且有效,这是标准的方式吗?
【问题讨论】:
标签: wso2 integration wso2esb wso2dss