为什么调用在wso2 esb中不起作用
我对wso2 esb有问题。 我编写了一个代理,在这个代理中,我调用了一个端点来对原始输入进行一些更改。但是调用前和调用后的日志是相同的(应该不同)。似乎呼叫根本不起作用。当我向outsequence发送respone时,它是空的。有人能说为什么会这样吗?(我已经在soupUI测试了我的端点) 这是我的代理:为什么调用在wso2 esb中不起作用,wso2,call,esb,mediator,Wso2,Call,Esb,Mediator,我对wso2 esb有问题。 我编写了一个代理,在这个代理中,我调用了一个端点来对原始输入进行一些更改。但是调用前和调用后的日志是相同的(应该不同)。似乎呼叫根本不起作用。当我向outsequence发送respone时,它是空的。有人能说为什么会这样吗?(我已经在soupUI测试了我的端点) 这是我的代理: <inSequence> <property name="transport.vfs.ReplyFileName" value="GET" scop
<inSequence>
<property name="transport.vfs.ReplyFileName" value="GET" scope="transport"/>
<property name="OUT_ONLY" value="true" scope="default" type="STRING"/>
<smooks config-key="smooks-csv1">
<input type="text"/>
<output type="xml"/>
</smooks>
<iterate continueParent="true"
preservePayload="true"
attachPath="//csv-set"
expression="//csv-set/search"
sequential="true">
<target>
<sequence>
<xslt key="gov:/first.xsl"/>
<xslt key="gov:/second.xsl"/>
**<log level="full"/>
<call blocking="true">
<endpoint>
<address uri="MyEndPiont"/>
</endpoint>
</call>
<log level="full"/>**
</sequence>
</target>
</iterate>
<respond/>
</inSequence>
<outSequence>
<aggregate>
<completeCondition>
<messageCount min="0" max="100"/>
</completeCondition>
<onComplete expression="//Guest">
</onComplete>
</aggregate>
</outSequence>
**
**
试试blocking=“false”
。请注意,进行此更改不会使调用中介程序为asynchonus。无论阻塞是真是假,它都是同步的。阻塞只是一个实现细节
调用中介器用于将消息从ESB发送到
终点。您可以在阻塞或非阻塞模式下调用服务
态度
在非阻塞模式下调用服务时,底层工作进程
线程返回而不等待响应。在阻塞模式下
底层工作线程被阻止,并在之后等待响应
将请求发送到端点。阻塞模式下的调用中介是
与调出中介非常相似
在阻塞模式和非阻塞模式中,调用中介器都以
同步方式。因此,中介在服务结束后暂停
当
收到答复。Call mediator允许您创建
独立于底层架构的配置
引用自试试这个。更改列表:
- 已删除
中介响应
- 将
替换为呼叫
发送
- 按out顺序添加了
send
<inSequence> <property name="transport.vfs.ReplyFileName" value="GET" scope="transport"/> <property name="OUT_ONLY" value="true" scope="default" type="STRING"/> <smooks config-key="smooks-csv1"> <input type="text"/> <output type="xml"/> </smooks> <iterate continueParent="true" preservePayload="true" attachPath="//csv-set" expression="//csv-set/search" sequential="true"> <target> <sequence> <xslt key="gov:/first.xsl"/> <xslt key="gov:/second.xsl"/> <log level="full"/> <send> <endpoint> <address uri="MyEndPiont"/> </endpoint> </send> </sequence> </target> </iterate> </inSequence> <outSequence> <aggregate> <completeCondition> <messageCount min="0" max="100"/> </completeCondition> <onComplete expression="//Guest"> </onComplete> </aggregate> <send /> </outSequence>
respond
mediator,这在这里是无法使用的。我将在这里发布另一个答案。尝试一下。不幸的是,再次进行这些更改后,我无法看到后续的输出。它给了我这个错误:“error-vfstranportsender在附加VFS文件系统属性时出错。null error-vfstranportsender无法确定要发送消息的输出传输信息”。我该怎么办?提前感谢您可以尝试删除OUT\u ONLY
属性吗?删除此属性后,我可以看到结果。但它给了我一个错误,因为我使用VFS,这是异步的。在发送部分,我将响应写入一个文件。这是错误:“VFS传输不支持同步响应。请使用适当的(仅限输出)消息交换模式”您所说的发送部分是什么意思?接下来,我应该将结果发送到文件。这是聚合后的我的代码:“