在WSO2 esb中连接到Oracle DB时获得响应的问题

时间:2014-03-10 10:10:39

标签: wso2esb

我正在研究WSO2 esb中的示例应用程序 它连接到Oracle数据库并返回查询的响应。下面提到的是我的服务。我面临的问题是我在执行服务后没有得到回复。但是我能够看到作为查询响应返回的值,但是无法在响应文档中呈现它。

任何人都可以建议,我缺少什么? 数据库凭据字段已经过哈希处理。

代理:

<?xml version="1.0" encoding="UTF-8"?>

<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="getEmployeeDetails"
       transports="https,http"
       statistics="disable"
       trace="disable"
       startOnLoad="true">
   <target>
      <inSequence>
         <property name="OUT_ONLY" value="true" scope="default" type="BOOLEAN"/>
         <log level="full" category="DEBUG"/>
         <dblookup>
            <connection>
               <pool>
                  <password>****</password>
                  <user>****</user>
                  <url>****</url>
                  <driver>oracle.jdbc.xa.client.OracleXADataSource</driver>
               </pool>
            </connection>
            <statement>
               <sql>select firstname from employee where lastname = 'pawar'</sql>
               <result name="firstname" column="firstname"/>
            </statement>
         </dblookup>
         <log level="custom">
            <property name="firstname" expression="get-property('firstname')"/>
         </log>
         <payloadFactory media-type="xml">
            <format>
               <GetEmployeeDetailsResponse xmlns="">
                  <out>$1</out>
               </GetEmployeeDetailsResponse>
            </format>
            <args>
               <arg evaluator="xml" expression="get-property('firstname')"/>
            </args>
         </payloadFactory>
      </inSequence>
      <outSequence>
         <log level="full" category="DEBUG"/>
      </outSequence>
   </target>
   <publishWSDL uri="file:/development/data/wso2/wsdl/Employee.wsdl"/>
   <description/>
</proxy>

1 个答案:

答案 0 :(得分:0)

您必须在inSequence中发送由payloadFactory生成的消息:

<header name="To" action="remove"/>
<property name="RESPONSE" value="true" scope="default" type="STRING"/>
<property name="NO_ENTITY_BODY" scope="axis2" action="remove"/>
<send/>

您的调解是“OUT_ONLY”,因此,您的outSequence永远不会被执行