0

我有一个问题,首先,我创建了一个服务,它将为结果提供一个特定的端点。获得特定端点后,我想调用该服务。但我不知道该怎么做。我尝试了模板端点,但仍然无法在 Mediator 中使用。我在:http ://wso2.org/project/esb/java/4.0.0/docs/templates.html 中看到了文档,它说“使用端点模板是 ESB 中使用的端点配置的通用形式。与序列模板不同,端点模板始终使用“$”前缀值进行参数化(即:- NOT xpath 表达式)”

这是我的模板代码:

<template xmlns="http://ws.apache.org/ns/synapse" name="TemplateEndPoint">
   <endpoint name="$name">
      <address uri="$uri">
         <suspendOnFailure>
            <progressionFactor>1.0</progressionFactor>
         </suspendOnFailure>
         <markForSuspension>
            <retriesBeforeSuspension>0</retriesBeforeSuspension>
            <retryDelay>0</retryDelay>
         </markForSuspension>
      </address>
   </endpoint>
</template>

这是代理的代码:

<send>
  <endpoint template="TemplateEndPoint">
    <parameter name="uri" value="http://localhost:8080/axis2/services/TaskService.TaskServiceHttpEndpoint/getTask" />
    <parameter name="name" value="Testing" />
  </endpoint>
</send>

当我在代理中对其进行硬编码时,它接受代码,但是当我在设计/源代码视图中回顾时,它将回到 . 我怎么解决这个问题?

4

3 回答 3

1

我想你正在寻找这个。您可以To使用标头调解器设置参数

<header name="To" expression="fn:concat('mailto:', get-property('email'))"/>

你也可以看看这个链接

于 2012-01-21T15:21:17.777 回答
0

当您第一次调用发送端点详细信息的服务时,请使用 xslt 调解器/丰富调解器来选择该端点详细信息。然后使用标头调解器并为该端点设置“To”值

于 2012-03-14T15:08:28.143 回答
0

似乎只有在服务使用所需传输的侦听器以及发送者时,设置 To 标头才有效。因此,如果您尝试在仅侦听 http 的服务上执行动态 mailto 端点,它会尝试通过 http 传输路由 mailto,但它不起作用。

作为解决此问题的方法,我将端点地址设置为服务器电子邮件帐户的地址(这也提供了已发送电子邮件的审计跟踪),并在传输级别设置 CC 或 BCC 属性。例如:

<property name="mailAddress" expression="/xpath/to/email/address" scope="default"/>

然后

<property name="CC" expression="get-property('mailAddress')" scope="transport" />

或者

<property name="BCC" expression="get-property('mailAddress')" scope="transport" />

您可以直接在 CC 属性中获取电子邮件地址,但这样做可以让您对地址属性执行验证。

于 2012-04-10T00:32:44.473 回答