Mike is correct, Put your SOAP XML in the body (I use a ReplaceText Processor),
add your Attributes to Send and then Invoke using the correct URL:
Here is the SOAP section from one of my flows:
Step 1) Replace Text Processor
Search Value (?s)(^.*$)
Replacement Value <?xml version="1.0" encoding="utf-8"?> <soap:Envelope
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header>
<ApiServiceHeader xmlns="http://xxxxxxx"> <UserName>${UserName}</UserName>
<Password>${Password}</Password> <ClientToken>${ClientToken}</ClientToken>
<Client>${Client}</Client> </ApiServiceHeader> </soap:Header> <soap:Body>
<GetBuildingsDataRequest xmlns="http://xxxxxxx">
<OrderNumber>${OrderNumber}</OrderNumber>
<LastChangedDate>${now():format("yyyy-MM-dd'T'hh:mm:ss")}</LastChangedDate>
</GetBuildingsDataRequest> </soap:Body> </soap:Envelope>
Character Set UTF-8
Maximum Buffer Size 1 MB
Replacement Strategy Regex Replace
Evaluation Mode Entire text
Step 2) Update Attribute: (may not be necessary for your flow)
Store State Do not store state
Stateful Variables Initial Value No value set
SoapAction ${SoapActionRoot}SubmitGetBuildingsData
Step 3) Invoke HTTP
HTTP Method POST
Remote URL
https://XXXXXX\WebDeliveryMembersServices/DataDeliveryServices.asmx
SSL Context Service No value set
Connection Timeout 30 min
Read Timeout 30 min
Include Date Header True
Follow Redirects True
Attributes to Send (Host|SoapAction)
Basic Authentication Username No value set
Basic Authentication Password No value set
Proxy Host No value set
Proxy Port No value set
Proxy Username No value set
Proxy Password No value set
Put Response Body In Attribute No value set
Max Length To Put In Attribute 2048
Use Digest Authentication false
Always Output Response false
Trusted Hostname No value set
Add Response Headers to Request false
Content-Type text/xml; charset=utf-8
Send Message Body true
Use Chunked Encoding false
Penalize on "No Retry" false
It was pretty easy once I got the Xml structure correct.
Hope this helps
Bruce
-----Original Message-----
From: Mike Thomsen [mailto:[email protected]]
Sent: Saturday, March 24, 2018 4:17 AM
To: [email protected]
Subject: Re: SOAP Service through InvokeHTTP
Been a while since I've done anything with SOAP, but the way I remember it is
it's just a POST operation with a XML payload at the end of the day. If you
have configured the endpoint properly in the processor's URL property and set
it to do a POST, the *flowfile content* should be where you put the SOAP
request body. In the example of SO, it looked like you were using a dynamic
property to store the soap:Envelope segment, and I don't think that's going to
work. Let me know if you make any progress with the method I suggested.
Mike
On Fri, Mar 23, 2018 at 5:55 PM, Code Novice <[email protected]> wrote:
> I've only just subscribed to the [email protected] mailing list and
> today was my first time even knowing that a thing like 'maling lists'
> existed.
> Regardless, I'm posting my question in hopes to seek out how you
> eventually managed to get your InvokeHTTP Processor to work with SOAP
> as I have not yet been able to do so.
>
> I posted my original question on this matter on Stackoverflow here
> <https://stackoverflow.com/questions/49457764/nifi-how-
> to-use-invokehttp-processor-with-soap>
> . I also referenced this post as it is the only place I am seeing
> somebody use the InvokeHTTP with SOAP.
>
> I'm using SOAPUI to verify that everything works and it does as I am
> getting the appropriate XML response back. However I am unable to
> accomplish this in NiFi. My guess is that I don't know what to call my
> dynamic properties. I also don't fully understand what data I would
> add to the Value of my dynamic properties.
>
> <http://apache-nifi-developer-list.39713.n7.nabble.com/file/t939/SOAP.
> png>
>
>
>
> --
> Sent from: http://apache-nifi-developer-list.39713.n7.nabble.com/
>