我有一个问题,首先,我创建了一个服务,它将为结果提供一个特定的端点。获得特定端点后,我想调用该服务。但我不知道该怎么做。我尝试模板Endpoint,但仍然无法在Mediator中使用。我已经看到了http://wso2.org/project/esb/java/4.0.0/docs/templates.html中的文档,它说“使用端点模板是ESB中使用的端点配置的一种通用形式。与序列模板不同,端点模板总是使用'$'前缀值进行参数化(即: - 不是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>
当我在代理中硬编码时,它接受代码,但是当我回顾设计/源视图时,它会回到。我该如何解决这个问题?
答案 0 :(得分:1)
我认为你正在寻找这个。您可以使用标头介体
设置To
参数
&lt; header name =“To”expression =“fn:concat('mailto:',get-property('email'))”/&gt;
您也可以查看this link
答案 1 :(得分:0)
当您首次调用发送端点详细信息的服务时,请使用xslt介体/丰富介体来选择端点详细信息。然后使用标头介体并为该端点设置“To”值
答案 2 :(得分:0)
似乎设置To标头仅在服务使用所需传输的侦听器以及发送方时才有效。因此,如果您尝试在仅侦听http的服务上执行动态mailto端点,它会尝试通过http传输路由mailto,但它不起作用。
作为解决此问题的方法,我将端点地址设置为服务器电子邮件帐户的地址(这也提供了发送电子邮件的审计跟踪),并在传输级别设置CC或BCC属性。 e.g:
<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属性中获取电子邮件地址,但这样做可以让您对地址属性执行验证。