Wso2 如何从ESB调用DSS服务-我觉得我';我快到了,我只需要轻轻推一下

Wso2 如何从ESB调用DSS服务-我觉得我';我快到了,我只需要轻轻推一下,wso2,wso2esb,esb,wso2dss,Wso2,Wso2esb,Esb,Wso2dss,我想我已经接近这个了。我试图在WSO2中从和ESB调用DSS服务的insert调用 我有DSS服务设置,可以从“试用”链接将数据插入表中。我将WSDL复制到ESB并引用端点。我可以从ESB try it服务中看到插入操作。我输入数据并单击发送。我看到一个“成功”的回应回来了,但没有任何东西被添加到表中 有人愿意用这个来推动我朝着正确的方向前进吗 谢谢大家! 来自试用it服务的响应 <success details="in-only operation"/> 代理 15 移动

我想我已经接近这个了。我试图在WSO2中从和ESB调用DSS服务的insert调用

我有DSS服务设置,可以从“试用”链接将数据插入表中。我将WSDL复制到ESB并引用端点。我可以从ESB try it服务中看到插入操作。我输入数据并单击发送。我看到一个“成功”的回应回来了,但没有任何东西被添加到表中

有人愿意用这个来推动我朝着正确的方向前进吗

谢谢大家!

来自试用it服务的响应

<success details="in-only operation"/>

代理


15
移动
file:///var/process
/瑞林
file:///var/process
/原始的
file:///var/process
/rrfault
TITLES.xml
应用程序/xml
移动

您需要添加一个指向DSS服务的地址端点。有关如何为axis2 web服务定义代理服务的信息,请参阅。您的场景与此非常相似。

以下是我是如何做到的。现在调用将命中DSS并将数据插入表中。我看到它处理并发送到DSS的每个XML行的日志中都有一些错误。我还不知道为什么。我还在研究

编辑:我将呼叫中介更改为发送中介,从而解决了此问题。我不再收到此错误消息

Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1]
Message: Premature end of file.
这是我的顺序

    <sequence xmlns="http://ws.apache.org/ns/synapse" name="MySequence">
   <log level="custom">
      <property name="sequence" value="MySequence"></property>
   </log>
   <property xmlns:ns="http://org.apache.synapse/xsd" name="filename" expression="get-property('transport', 'FILE_NAME')"></property>
   <log level="custom">
      <property xmlns:ns="http://org.apache.synapse/xsd" name="show-name" expression="get-property('filename')"></property>
      <property xmlns:ns="http://org.apache.synapse/xsd" name="file-name" expression="get-property('targetfilename')"></property>
   </log>
   <iterate xmlns:ns2="http://org.apache.synapse/xsd" xmlns:ns="http://org.apache.synapse/xsd" xmlns:z="RowsetSchema" expression="//z:row" id="It1">
      <target>
         <sequence>
            <property name="Id" expression="//z:row/@ID"></property>
            <property name="vch" expression="//z:row/@vch"></property>
            <log level="custom">
               <property name="showids" expression="get-property('Id')"></property>
               <property name="showvch" expression="get-property('vch')"></property>
            </log>
            <filter xpath="//z:row[starts-with(@vch, '978')]">
               <then>
                  <payloadFactory media-type="xml">
                     <format>
                        <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:p="http://ws.wso2.org/dataservice">
                           <soapenv:Body>
                              <p:insert_AR_operation>
                                 <p:ID xmlns:xs="http://ws.wso2.org/dataservice">$1</p:ID>
                                 <p:vch xmlns:xs="http://ws.wso2.org/dataservice">$2</p:vch>
                              </p:insert_AR_operation>
                           </soapenv:Body>
                        </soapenv:Envelope>
                     </format>
                     <args>
                        <arg expression="get-property('Id')" evaluator="xml"></arg>
                        <arg expression="get-property('vch')" evaluator="xml"></arg>
                     </args>
                  </payloadFactory>
                  <log level="custom">
                     <property name="sequence" value="Calling LevelsAR_ISBNService"></property>
                  </log>
                  <property name="HTTP_METHOD" value="POST" scope="axis2"></property>
                  <property name="SOAPAction" value="insert_AR_operation" scope="transport"></property>
                  <send>
                     <endpoint>
                        <address uri="http://*.*.*.*:****/services/AR_Service.HTTPEndpoint/"></address>
                     </endpoint>
                  </send>
               </then>
               <else>
                  <log level="custom">
                     <property name="sequence" value="Condition Drop"></property>
                  </log>
                  <drop></drop>
               </else>
            </filter>
         </sequence>
      </target>
   </iterate>
   <property xmlns:ns2="http://org.apache.synapse/xsd" xmlns:ns="http://org.apache.synapse/xsd" name="transport.vfs.ReplyFileName" expression="fn:concat(get-property('SYSTEM_DATE', 'yyMMddHHmmss'), '-', get-property('filename'))" scope="transport"></property>
   <property name="OUT_ONLY" value="true"></property>
</sequence>

$1
$2

感谢Rajeev的回复。玩了一会儿之后,我终于接到了上班的电话。我在上面发布了我的序列。谢谢
    <sequence xmlns="http://ws.apache.org/ns/synapse" name="MySequence">
   <log level="custom">
      <property name="sequence" value="MySequence"></property>
   </log>
   <property xmlns:ns="http://org.apache.synapse/xsd" name="filename" expression="get-property('transport', 'FILE_NAME')"></property>
   <log level="custom">
      <property xmlns:ns="http://org.apache.synapse/xsd" name="show-name" expression="get-property('filename')"></property>
      <property xmlns:ns="http://org.apache.synapse/xsd" name="file-name" expression="get-property('targetfilename')"></property>
   </log>
   <iterate xmlns:ns2="http://org.apache.synapse/xsd" xmlns:ns="http://org.apache.synapse/xsd" xmlns:z="RowsetSchema" expression="//z:row" id="It1">
      <target>
         <sequence>
            <property name="Id" expression="//z:row/@ID"></property>
            <property name="vch" expression="//z:row/@vch"></property>
            <log level="custom">
               <property name="showids" expression="get-property('Id')"></property>
               <property name="showvch" expression="get-property('vch')"></property>
            </log>
            <filter xpath="//z:row[starts-with(@vch, '978')]">
               <then>
                  <payloadFactory media-type="xml">
                     <format>
                        <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:p="http://ws.wso2.org/dataservice">
                           <soapenv:Body>
                              <p:insert_AR_operation>
                                 <p:ID xmlns:xs="http://ws.wso2.org/dataservice">$1</p:ID>
                                 <p:vch xmlns:xs="http://ws.wso2.org/dataservice">$2</p:vch>
                              </p:insert_AR_operation>
                           </soapenv:Body>
                        </soapenv:Envelope>
                     </format>
                     <args>
                        <arg expression="get-property('Id')" evaluator="xml"></arg>
                        <arg expression="get-property('vch')" evaluator="xml"></arg>
                     </args>
                  </payloadFactory>
                  <log level="custom">
                     <property name="sequence" value="Calling LevelsAR_ISBNService"></property>
                  </log>
                  <property name="HTTP_METHOD" value="POST" scope="axis2"></property>
                  <property name="SOAPAction" value="insert_AR_operation" scope="transport"></property>
                  <send>
                     <endpoint>
                        <address uri="http://*.*.*.*:****/services/AR_Service.HTTPEndpoint/"></address>
                     </endpoint>
                  </send>
               </then>
               <else>
                  <log level="custom">
                     <property name="sequence" value="Condition Drop"></property>
                  </log>
                  <drop></drop>
               </else>
            </filter>
         </sequence>
      </target>
   </iterate>
   <property xmlns:ns2="http://org.apache.synapse/xsd" xmlns:ns="http://org.apache.synapse/xsd" name="transport.vfs.ReplyFileName" expression="fn:concat(get-property('SYSTEM_DATE', 'yyMMddHHmmss'), '-', get-property('filename'))" scope="transport"></property>
   <property name="OUT_ONLY" value="true"></property>
</sequence>