0

我正在使用 wso2esb4.7.0 我已经编写了 jms 代理所以我希望将我的数据发送到端点但我无法处理这个我的代理是

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="MediaMoveQueue"
       transports="jms"
       startOnLoad="true"
       trace="disable">
   <description/>
   <target>
      <inSequence>
         <property name="readingspayload" expression="$body"/>
         <payloadFactory media-type="xml">
            <format>
               <p:hello xmlns:p="http://jaxws.youtility.in/">
                   <arg0 xmlns="">$1</arg0>
               </p:hello>
            </format>
            <args>
               <arg evaluator="xml" expression="get-property('readingspayload')"/>
            </args>
         </payloadFactory>
         <!--header name="Action" value="hello"/-->
         <log level="full"/>
         <send>
            <endpoint>
               <address uri="http://192.168.1.2:8282/services/media_move_service_i_f"
                        format="soap11"/>
            </endpoint>
         </send>
      </inSequence>
      <outSequence>
         <log level="full"/>
         <send/>
      </outSequence>
   </target>
</proxy>

在这个代理中,如果我记录这个 esb,我会得到这样的数据,我的日志看起来像这样


{"timestamp":1383715637698,"tmpfilename":"313d79a7-c29b-4e1a-9609-818610a6a66b.pdf","objecttype":"Punch","filename":"enterprisedb_order.pdf","totalfilesize":994086," uuid":"313d79a7-c29b-4e1a-9609-818610a6a66b","objectid":"313d79a7-c29b-4e1a-9609-818610a6a66b","fullpath":"/tmp/tmpmedia//313d79a7-c29b-4e1a-9609- 818610a6a66b.pdf","deviceId":"911202500210109","filemimetype":"PNG"}

但我只需要将该 json 格式的数据发送到我的端点,因为我已经尝试过这个 xpath,但它显示名称空间错误我将如何得到这个

$axis2ns58:text

但它抛出错误我希望将该数据发送到我的端点我已经尝试过但我只需要上述格式的数据

//soapenv:Body

它像这样的结果

   <soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
      <axis2ns58:text xmlns:axis2ns58="http://ws.apache.org/commons/ns/payload">{"timestamp":1383715637698,"tmpfilename":"313d79a7-c29b-4e1a-9609-818610a6a66b.pdf","objecttype":"Punch","filename":"enterprisedb_order.pdf","totalfilesize":994086,"uuid":"313d79a7-c29b-4e1a-9609-818610a6a66b","objectid":"313d79a7-c29b-4e1a-9609-818610a6a66b","fullpath":"/tmp/tmpmedia//313d79a7-c29b-4e1a-9609-818610a6a66b.pdf","deviceId":"911202500210109","filemimetype":"PNG"}</axis2ns58:text> 
</soapenv:Body>

但我希望将以下数据发送到我的端点,即使有效负载也不支持此

{"timestamp":1383715637698,"tmpfilename":"313d79a7-c29b-4e1a-9609-818610a6a66b.pdf","objecttype":"Punch","filename":"enterprisedb_order.pdf","totalfilesize":994086,"uuid":"313d79a7-c29b-4e1a-9609-818610a6a66b","objectid":"313d79a7-c29b-4e1a-9609-818610a6a66b","fullpath":"/tmp/tmpmedia//313d79a7-c29b-4e1a-9609-818610a6a66b.pdf","deviceId":"911202500210109","filemimetype":"PNG"}
4

2 回答 2

2

你可以尝试做

//soapenv:Body/ns:text

并设置命名空间

ns="http://ws.apache.org/commons/ns/payload"
于 2013-11-08T09:37:46.287 回答
0

试试这个:修改你的代理服务如下:

代替<property name="readingspayload" expression="$body"/> , modify it to below, <property xmlns:ns="http://ws.apache.org/commons/ns/payload" name="readingspayload" expression="$body/ns:text/text()"/>

 ****

希望这应该工作!

于 2013-11-27T20:20:28.840 回答