2016-08-19 2 views
0

메신저 WSO2 ESB와 DDS를 사용하여 데이터베이스에서 데이터를 읽는 API를 만들었고 마침내이 호응을 얻었다. 스크립트 중개자를 사용하여이 XML을 Json으로 변환하는 방법은 무엇입니까? 예를 들어주세요.WSO2 - 스크립트 중재자를 사용하여이 XML을 Json으로 변환하는 방법은 무엇입니까?

<?xml version='1.0' encoding='UTF-8'?> <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"> 
<soapenv:Body> 
    <employeeCollection xmlns="http://employee.us.wso2.com"> 
     <employee> 
      <EmployeeID>17</EmployeeID> 
      <FirstName>jak</FirstName> 
      <LastName>123</LastName> 
      <Team>ok</Team> 
     </employee> 
     <employee> 
      <EmployeeID>18</EmployeeID> 
      <FirstName>jak</FirstName> 
      <LastName>123</LastName> 
      <Team>ok</Team> 
     </employee> 
     <employee> 
      <EmployeeID>19</EmployeeID> 
      <FirstName>jak</FirstName> 
      <LastName>123</LastName> 
      <Team>ok</Team> 
     </employee> 

    </employeeCollection> 
</soapenv:Body> 

그리고이 구성을

<resource methods="POST" uri-template="/team"> 
    <inSequence> 
    <sequence key="conf:/SendSelectWithTeam"/> 
    <call> 
     <endpoint> 
      <address uri="https://192.168.2.165:9453/services/EmployeesDataService/" format="soap12"/> 
     </endpoint> 
    </call> 

    <respond/> 
    </inSequence> 

추가 질문입니다 : 어떻게 스크립트 중재자를 사용하여 "직원 ID"의 각각의 값을 얻는 방법?

답변

1

json으로 직접 변환하려는 경우 스크립트 조정자를 사용하여 수동으로 변환 할 필요가 없습니다.

이렇게 ESB 프록시 (또는 API)의 출력 순서를 업데이트하면 응답 XML이 json으로 변환됩니다.

<outSequence> 
    <property name="messageType" value="application/json" scope="axis2"/> 
    <send/> 
</outSequence> 

자세한 내용은 WSO2 Docs을 참조하십시오.

편집 : 당신이 <respond> 중재자를 사용하는 경우 귀하의 경우에는

는,이 순서를 무시하며, 내 제안이 작동하지 않습니다. 작동 시키려면 2 가지 옵션이 있습니다.

1) callrespond 중재자 대신 Send 중재자를 사용하십시오.

또는

2

) loopback 중재자 대신 respond 중재자를 사용합니다.

<outSequence xmlns="http://ws.apache.org/ns/synapse"> 
    <property name="messageType" value="application/json/badgerfish" scope="axis2" type="STRING"></property> 
    <send></send> 
</outSequence> 
+0

덕분에 그 일 : –

+0

시도해보십시오. '' – Bee

+0

getPayloadJSON의 반환 값은 null입니다. –

0

은 다음과 같은 설정 파일이 링크를

How to convert SOAP response with xsi values to json in WSO2esb

변경하시기 바랍니다 프록시 outSequence 설정을 참조하십시오. 하지만 응답을 수정하고 싶습니다. 스크립트를 사용하는 경우 첫 번째 "EmployeeID"값을 얻는 방법은 무엇입니까?