2017-02-23 8 views
0

Nous avons un service Web qui crée un enregistrement dans une table de base de données et donne une réponse/sortie comme après l'insertion réussie « succès » dans l'interface utilisateur SOAPComment capturer la sortie de service Web dans Developer Studio

Nous avons mis au point un projet dans le studio de développement et appelé ce service Web en utilisant AddressEndPoint, et le fichier CAR déployé sur ESB Server

Le service Web appelle avec succès via ESB et les enregistrements insèrent dans les tables, mais nous ne pouvons pas enregistrer le statut "SUCCESS" partout où nous avons essayé d'utiliser Connectez le médiateur après CALL (AddressEndPoint) Mediator mais il ne consigne pas la réponse du service Web. ci-dessous est ma source:

<?xml version="1.0" encoding="UTF-8"?> 
<proxy xmlns="http://ws.apache.org/ns/synapse" 
     name="EslSfaOFAOMSOIntegrationPS" 
     startOnLoad="true" 
     statistics="disable" 
     trace="disable" 
     transports="http,https"> 
    <target> 
     <inSequence> 
     <call> 
      <endpoint> 
       <address format="soap11" 
         uri="http://10.1.6.175:9763/services/EslSfaOMSODataService.SOAP11Endpoint/"/> 
      </endpoint> 
     </call> 
     <log level="full"/> 
     <datamapper config="gov:datamapper/EslSfaOFAOMSOIntegrationMapping.dmc" 
        inputSchema="gov:datamapper/EslSfaOFAOMSOIntegrationMapping_inputSchema.json" 
        inputType="XML" 
        outputSchema="gov:datamapper/EslSfaOFAOMSOIntegrationMapping_outputSchema.json" 
        outputType="XML"/> 
     <log description="" level="full"/> 
     <header name="Authorization" 
       scope="transport" 
       value="Basic cHdjLmV0aXNhbGF0OkZlcmd1c29uMTIz"/> 
     <log level="full"/> 
     <call> 
      <endpoint> 
       <address format="soap11" 
         uri="https://eere-test.scm.ap1.oraclecloud.com:443/soa-infra/services/default/DooDecompReceiveOrderExternalComposite/ReceiveOrderRequestService"/> 
      </endpoint> 
     </call> 
     <enrich> 
      <source clone="true" type="body"/> 
      <target property="ReceiveOrderServiceResponseMessage" type="property"/> 
     </enrich> 
     <log level="custom"> 
      <property expression="get-property('ReceiveOrderServiceResponseMessage')" 
         name="moidSiddiqui"/> 
     </log> 
     <respond/> 
     </inSequence> 
     <outSequence/> 
     <faultSequence/> 
    </target> 
    <description/> 
</proxy> 
+0

Veuillez développer ou donner un exemple de code. Vous devriez pouvoir vous connecter simplement en utilisant Jan

+0

Essayez d'activer wirelogs [1] dans l'ESB et vérifiez si ESb obtient effectivement la réponse "SUCCESS" du webservice. http://mytecheye.blogspot.com/2013/09/wso2-esb-all-about-wire-logs.html –

+0

j'ai permis les wirelogs mais c'est seulement la réponse brute de notation pas la sortie réelle de webservice – Junaid

Répondre

1

J'utilise cette propriété après mon médiateur d'appel pour obtenir le statut

<log> 
    property xmlns:ns="http://org.apache.synapse/xsd" name="Status" 
    expression="get property('axis2','HTTP_SC')"/> 
</log> 

Vous pouvez trouver plus d'informations ici

https://docs.wso2.com/display/ESB460/HTTP+Transport+Properties

Pour obtenir la réponse du service que j'utilise

<enrich> 
    <source clone="true" type="body"/> 
    <target property="Ouput_Respose_Service" type="property"/> 
</enrich> 

<log level="custom" separator=","> 
    <property expression="get-property('Ouput_Respose_Service')" name="Service_Response"/> 
</log> 
+0

Alber: j'ai partagé ma source dans la question, j'ai ajouté comme vous l'avez suggéré, mon nom de sortie webservice est 'ReceiveOrderServiceResponseMessage' mais dans carbon.log j'ai obtenu null contre le nom de propriété – Junaid

+0

salut, Vous avez validé que le deuxième service répond ok?, ajouter un journal complet après le deuxième appel pour voir la réponse qui apporte –