2017-07-19 3 views
0

Ich versuche, einen benutzerdefinierten Mediator in WSO2 ESB zu implementieren, und was ich versuche zu erreichen ist, dass der Mediator den Dateipfad als Eingabe nehmen muss und dann zu SOAP hinzufügen Nachricht als Anhang.Hinzufügen von Anhang zu SOAP-Nachricht in Custom Mediator, WSO2 ESB

Der Vermittler-Code, den ich bisher geschrieben habe, erhält den Anhangspfad und druckt die SOAP-Nachricht. Jetzt habe ich die Dokumentation von MessageContext Schnittstelle überflogen und ich kann sehen, dass wir Elemente zu SOAP-Nachricht hinzufügen/entfernen können, etc., aber ich kann nicht herausfinden, wie Sie Anhang in der SOAP-Nachricht hinzufügen. Irgendwelche Ideen?

import javax.activation.FileDataSource; 
import org.apache.axiom.soap.SOAPBody; 
import org.apache.synapse.MessageContext; 
import org.apache.synapse.mediators.AbstractMediator; 

public class SoapModifier extends AbstractMediator { 

private String AttachmentFilePath; 

public boolean mediate(MessageContext context) { 
    context.setDoingSWA(true); 
    FileDataSource fileDataSource = new FileDataSource(AttachmentFilePath); 
    SOAPBody soapBody = context.getEnvelope().getBody(); 
    System.out.println("Message Being Processed : " + context.toString()); 
    return true; 
} 

public String getAttachmentFilePath(){ 
    return AttachmentFilePath; 
} 

public void setAttachmentFilePath(String path){ 
    AttachmentFilePath = path; 
} 
} 

Antwort

0

könnte Diese helfen Attachments API in Apache Axis2

+0

Dank! Der Artikel schlägt vor, die Message Context-Schnittstelle von Apache Axis 2 zu verwenden, aber der benutzerdefinierte Mediator gibt im Message Context-Objekt von Apache Synapse. So löste ich es, indem ich den Nachrichtenkontext auf Apache Axis 2 umwandelte. –

+0

So wird der Code-Zusatz so sein: 'DataHandler dataHandler = neuer DataHandler (fileDataSource); org.apache.axis2.context.MessageContext mc = ((Axis2MessageContext) -Kontext) .getAxis2MessageContext(); Zeichenfolge contentid = mc.addAttachment (dataHandler); ' –