1

我正在尝试使用 Smooks Mediator 将代理的响应写入文件,但没有任何反应。

调解器获取带有 vfs 选项的 csv 文件,转换为 xml 输出并将 csv 正确发送到 out 目录。在控制台中,我看到 ws02-esb-service.log 并且 xml 是正确的。但我不会写入文件。在 /u01/app/wso2esb-4.7.0/tmp/send/convert 然后结果不出现。并且没有任何错误。这是代码。

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="SmookTest"
       transports="vfs"
       statistics="disable"
       trace="disable"
       startOnLoad="true">
   <target>
      <inSequence>
         <smooks config-key="smooks-registro">
            <input type="text"/>
            <output type="xml"/>
         </smooks>
         <log level="full"/>
         <property name="transport.vfs.ReplyFileName"
                   value="test1.xml"
                   scope="transport"/>
         <property name="OUT_ONLY" value="true"/>
         <send>
            <endpoint name="grabar">
               <address uri="vfs:file:///u01/app/wso2esb-4.7.0/tmp/send/convert"/>
            </endpoint>
         </send>
      </inSequence>
   </target>
   <parameter name="transport.vfs.ReplyFileURI">salida.xml</parameter>
   <parameter name="transport.vfs.ActionAfterProcess">MOVE</parameter>
   <parameter name="transport.PollInterval">5</parameter>
   <parameter name="transport.vfs.FileURI">/u01/app/wso2esb-4.7.0/tmp/send</parameter>
   <parameter name="transport.vfs.MoveAfterProcess">/u01/app/wso2esb-4.7.0/tmp/send/out</parameter>
   <parameter name="transport.vfs.MoveAfterFailure">/u01/app/wso2esb-4.7.0/tmp/send/fail</parameter>
   <parameter name="transport.vfs.FileNamePattern">.*.csv</parameter>
   <parameter name="transport.vfs.ContentType">text/plain</parameter>
   <description/>
</proxy>
4

2 回答 2

2

由于 VFS 以纯文本格式读取,因此除非您明确提及它,否则它不会使用格式化程序。因此,您可以在调用端点之前提及内容类型

喜欢

 <property name="OUT_ONLY" value="true"/>
 <property name="messageType"
           value="application/soap"
           scope="axis2"
           type="STRING"/>

 <send>
    <endpoint name="grabar">
       <address uri="vfs:file:///u01/app/wso2esb-4.7.0/tmp/send/convert"/>
    </endpoint>
 </send>
于 2014-03-06T04:08:48.863 回答
0

我找到了解决方案。将格式添加到端点并且文件内容正确写入。

<address uri="vfs:file:///u01/app/wso2esb-4.7.0/tmp/send/convert"
                        format="soap11"/>
于 2014-03-05T12:44:11.863 回答