2016-06-08 4 views
0

Ich habe einen HTTP-Listener und die Daten, die an ihn gesendet werden, kommen als HTTP_RAW_POST_DATA. Wie greife ich darauf zu? Ich habe # [Nachricht], # [Nutzlast] und auch inboundAttachments ausgegeben und ich kann einfach nicht herausfinden, wie man zu den Daten kommt.Mule 3.7 Wie kann ich auf eingehende HTTP_RAW_POST_DATA zugreifen?

+0

sprechen Sie über die HTTP heade rs? Können Sie ein Beispiel dafür angeben, auf welche Daten Sie zugreifen müssen? –

Antwort

1

Wenn Sie über die Nutzlast sprechen Sie in Ihrer POST-Methode sind vorbei, können Sie einfach den folgenden Ausdruck in einem Logger verwenden: - <logger message="#[message.payloadAs(java.lang.String)]" level="INFO"/> oder alternativ können Sie <object-to-string-transformer> nach HTTP-Listener verwenden und dann einen Logger wie <logger message="#[message.payload]" level="INFO"/>
die Nutzlast verwenden, nachdem der HTTP-Listener ist in Input Format, so dass Sie es als String

konvertieren müssen
+0

Danke. Dies führte mich zu der Erkenntnis, dass, da die geposteten Daten ein Soap-Dokument sind, ich verwenden musste, was mir dann Zugriff auf die tatsächlichen Daten gab, die ich in # [Nutzlast] benötigte. – kambythet

2

Einfache Möglichkeit zu prüfen, ob Sie auf Daten von mule Http Endpunkt zugreifen können, ist eine leere Logger, druckt alle Daten auf der Konsole und Sie können die Daten für dort auswählen.

`INFO 2016-06-08 10:18:59,339 [[test].HTTP_Listener_Configuration.worker.01] org.mule.api.processor.LoggerMessageProcessor: 
org.mule.DefaultMuleMessage 
{ 
    id=505d9b40-2d34-11e6-9b78-8cdcd4d3ab0f 
    payload=org.mule.transport.NullPayload 
    correlationId=<not set> 
    correlationGroup=-1 
    correlationSeq=-1 
    encoding=UTF-8 
    exceptionPayload=<not set> 

Message properties: 
    INVOCATION scoped properties: 
    INBOUND scoped properties: 
    accept=*/* 
    accept-encoding=gzip, deflate, sdch 
accept-language=en-US,en;q=0.8 
cache-control=no-cache 
connection=keep-alive 
host=localhost:8084 
http.listener.path=/ 
http.method=GET 
http.query.params=ParameterMap{[]} 
http.query.string= 
http.relative.path=/ 
http.remote.address=/127.0.0.1:58506 
http.request.path=/ 
http.request.uri=/ 
http.scheme=http 
http.uri.params=ParameterMap{[]} 
http.version=HTTP/1.1 
postman-token=78bda747-9e48-66ab-bcd1-6dac20387f12 
user-agent=Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36 
    OUTBOUND scoped properties: 
    SESSION scoped properties: 
} 

`

+0

Danke, Naveen. Ich kannte das schon, aber immer noch tolle Informationen! – kambythet