从 WSO2 ESB 项目调用 DSS 服务调用中涉及的标头调解器究竟如何工作?



我是WSO2的绝对新手,我有以下疑问。

我正在做一个ESB项目。在链中有这个标头中介

<?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>

因此,如您所见,标头调解器在有效负载工厂调解器构建必须发送到DSS服务的空消息之后链接。

标头中介:

<header name="Action" scope="default" value="urn:FindNotProcessed"/>

添加一个标头,用于指定必须在DSS服务上调用的操作名称,此操作实际上名为FindNotProcessing,并且它与定义的查询相关联。

好的,我的疑问是:

1)value属性的值指定必须在DSS服务上执行的操作的名称,在本例中,此值为urn:FindNotProcessing

在要执行的操作的名称之前放置的urn: 前缀到底是什么意思?

2)标头中介器定义也包含此属性name="Action"。

究竟代表什么?是中介器名称之类的东西,还是必须在操作上设置值以获得某种语义含义?它只是一个名称还是存在一组具有语义行为的字段的可能值?

3) 因此,要调用 DSS 服务,propper 的方式是:使用有效负载工厂中介器创建一条消息,将其与指定必须在DSS服务上执行的操作名称的标头调解器链接起来,然后链接执行调用的标注中介器。我已经以这种方式做了并且工作,这是标准方法吗?

> 1)urn:FindNotProcessed是 SOAPAction 名称,在 Web 服务 WSDL 中定义。urn:只是该名称的一部分,它看起来像一个命名空间,但事实并非如此。

2)通过设置name="Action">,您可以告诉您正在设置哪个 HTTP 标头。在这种情况下,它将设置SOAPAction: urn:FindNotProcessing

3)没错,但您不仅可以使用标注,还可以使用发送呼叫调解器,具体取决于您的逻辑。

最新更新