2016-09-01 8 views
3

Ich habe einen einfachen Proxy in WSO2 ESB geschrieben, um nur HTTP-Anfrage zu behandeln und Nachricht an RabbitMQ-Warteschlange zu senden. Hier ist mein Proxy-Dienst:wso2esb - redundante Header von HTTP-Anfrage

<?xml version="1.0" encoding="UTF-8"?> 
<proxy name="TestProxy" startOnLoad="true" transports="https http" xmlns="http://ws.apache.org/ns/synapse"> 
    <target> 
     <inSequence> 
      <header action="remove" name="Accept" scope="transport"/> 
      <property action="remove" name="SOAP_ACTION" scope="default"/> 
      <property action="remove" name="SOAP_ACTION" scope="transport"/> 
      <property action="remove" name="SOAP_ACTION" scope="axis2"/> 
      <property action="remove" name="SOAPAction" scope="default"/> 
      <property action="remove" name="SOAPAction" scope="transport"/> 
      <property action="remove" name="SOAPAction" scope="axis2"/> 
      <header action="remove" name="Action" scope="default"/> 
      <header action="remove" name="Action" scope="transport"/> 
      <property name="transport.jms.ContentTypeProperty" scope="axis2" type="STRING" value="Content-Type2"/> 
      <property name="FORCE_SC_ACCEPTED" scope="axis2" type="STRING" value="true"/> 
      <property name="NO_ENTITY_BODY" action="remove" scope="axis2"/> 

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

      <property name="CONTENT_TYPE" value="application/json" scope="axis2"/> 
         <property name="OUT_ONLY" scope="default" type="STRING" value="true" /> 

      <payloadFactory media-type="json"> 
       <format>{"test": "test2"}</format> 
       <args> 
       </args> 
      </payloadFactory> 
      <send> 
       <endpoint> 
        <address trace="disable" 
         uri="rabbitmq:/TestProxy?rabbitmq.server.host.name=localhost&amp;rabbitmq.server.port=5672&amp;rabbitmq.server.user.name=test&amp;rabbitmq.server.password=test&amp;rabbitmq.queue.name=inputQueue_001&amp;rabbitmq.exchange.name=amq.direct&amp;rabbitmq.queue.routing.key=inputQueue_001&amp;rabbitmq.message.content.type=application/json"/> 
       </endpoint> 
      </send> 

     </inSequence> 
     <outSequence> 
      <header action="remove" name="Accept" scope="transport"/> 
      <property action="remove" name="SOAP_ACTION" scope="default"/> 
      <property action="remove" name="SOAP_ACTION" scope="transport"/> 
      <property action="remove" name="SOAP_ACTION" scope="axis2"/> 
      <property action="remove" name="SOAPAction" scope="default"/> 
      <property action="remove" name="SOAPAction" scope="transport"/> 
      <property action="remove" name="SOAPAction" scope="axis2"/> 
      <header action="remove" name="Action" scope="default"/> 
      <header action="remove" name="Action" scope="transport"/> 
      <property name="NO_ENTITY_BODY" action="remove" scope="axis2"/> 
      <send></send> 
     </outSequence> 
     <faultSequence/> 
    </target> 
</proxy> 

Von wenigen Tagen, mit denen ich zu kämpfen Header-Nachricht zu entfernen senden Warteschlange. Hier ist meine Nachricht auf inputQueue_001:

enter image description here

und ich habe keine Ahnung, wie alle Header entfernen ...

Haben Sie Hinweise haben ???

Ich werde jede Hilfe und Beispiele schätzen.

+1

ich auf gleiche Problem kam senden könnte jemand ist sich bewusst, was in WSO2 esb los ist 5.0+? – Gazeciarz

+0

Wenn Sie Header aus der Nachricht entfernen müssen, die an rabbitmq gesendet wird, müssen Sie sie unmittelbar vor dem Sende-Mediator in der Sequenz – maheeka

+0

entfernen. Können Sie ein Beispiel geben? Ich bin ein Neuling in WSO2 und ich weiß nicht, wie es geht. – bontade

Antwort

2

Alle Transport-Header werden in axis2 Nachrichtenkontext, in eine Eigenschaft namens TRANSPORT_HEADERS gespeichert: lösche ihn vor Mediator

<property action="remove" name="TRANSPORT_HEADERS" scope="axis2"/>