Author |
Message
|
cevans |
Posted: Thu Aug 08, 2013 4:01 am Post subject: SOAP 1.2 Request with SOAPAction |
|
|
Apprentice
Joined: 18 Jul 2013 Posts: 26
|
The following issue is happening with Broker Toolkit 8.0.0.2
I am using a SOAPRequest node to connect to a service using SOAP 1.2
The wsdl defines a soapAction for the soap12:operation
When the SOAP Request is generated the header contains the following ...
SOAPAction: "myReg"
In SOAP 1.2 SOAPAction is not supported and the header should contain the following ...
Content-Type: application/soap+xml;charset=UTF-8;action="myReg"
When I load the WSDL into soapUI the request message is created correctly. I have tried this with other WSDL files and they all behave the same.
Is there something specific I need to do to ensure Broker creates the Header as a SOAP 1.2 request?
Thanks |
|
Back to top |
|
 |
kash3338 |
Posted: Thu Aug 08, 2013 6:22 am Post subject: Re: SOAP 1.2 Request with SOAPAction |
|
|
Shaman
Joined: 08 Feb 2009 Posts: 709 Location: Chennai, India
|
cevans wrote: |
When the SOAP Request is generated the header contains the following ...
SOAPAction: "myReg" |
How are you generating the SOAP Request message? Do you use a SOAP Envelop node to generate the headers? In that case I guess SOAP Envelop and Extract nodes dont support SOAP 1.2.
You will have to construct the request in ESQL and explicitly set that you are using SOAP 1.2 by setting the SOAP Version to 1.2. |
|
Back to top |
|
 |
Simbu |
Posted: Thu Aug 08, 2013 7:37 am Post subject: |
|
|
 Master
Joined: 17 Jun 2011 Posts: 289 Location: Tamil Nadu, India
|
|
Back to top |
|
 |
cevans |
Posted: Thu Aug 08, 2013 9:48 am Post subject: |
|
|
Apprentice
Joined: 18 Jul 2013 Posts: 26
|
Thanks for the link. I searched for all sorts of relevant things and did not come across that thread.
I will try setting the SOAP version and see if that fixes the problem.
I am using ESQL in a Compute node to create the SOAP Request message and then passing it to a SOAP Request Node and allowing that to create the required headers. |
|
Back to top |
|
 |
cevans |
Posted: Mon Aug 12, 2013 5:08 am Post subject: |
|
|
Apprentice
Joined: 18 Jul 2013 Posts: 26
|
I have amended my ESQL ...
Code: |
SET Environment.InputMessage = InputRoot;
SET OutputRoot.Properties = InputRoot.Properties;
DECLARE urn NAMESPACE 'urn:ingruk:ivr:201209';
DECLARE soap NAMESPACE 'http://www.w3.org/2003/05/soap-envelope';
SET OutputRoot.SOAP.Context.Namespace.(SOAP.NamespaceDecl)xmlns:soap = soap;
SET OutputRoot.SOAP.Context.Namespace.(SOAP.NamespaceDecl)xmlns:urn = urn;
SET OutputRoot.SOAP.Context.SOAP_Version = '1.2';
DECLARE outRoot REFERENCE TO OutputRoot.SOAP;
DECLARE inRef REFERENCE TO InputRoot.JSON.Data.findEventRequest;
CREATE LASTCHILD OF OutputRoot.SOAP.Body AS outRoot NAMESPACE urn NAME 'RequestFindEventDetails-v1-0';
SET outRoot.urn:EventNum = inRef.EventNum;
SET outRoot.urn:EventStatus = 'All'; |
I still get a 1.1 SOAP message created ...
Code: |
POST /IVR.svc/FindEventDetails-v1-0 HTTP/1.1
Content-Length: 288
Content-Type: application/soap+xml; charset=utf-8
Host: localhost:8888
SOAPAction: "urn:ingruk:ivr:201209:FindEventDetails-v1-0"
Connection: Keep-Alive
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:urn="urn:ingruk:ivr:201209">
<soap:Body>
<urn:RequestFindEventDetails-v1-0>
<urn:EventNum1>Q805PA004</urn:EventNum1>
<urn:EventStatus>All</urn:EventStatus>
</urn:RequestFindEventDetails-v1-0>
</soap:Body>
</soap:Envelope> |
Niot sure why this is still not working. |
|
Back to top |
|
 |
lancelotlinc |
Posted: Mon Aug 12, 2013 5:14 am Post subject: |
|
|
 Jedi Knight
Joined: 22 Mar 2010 Posts: 4941 Location: Bloomington, IL USA
|
|
Back to top |
|
 |
mgk |
Posted: Mon Aug 12, 2013 8:32 am Post subject: |
|
|
 Padawan
Joined: 31 Jul 2003 Posts: 1642
|
I've had a quick look for you, and for SOAP 1.2 the Broker currently sends the SOAPAction in the HTTPHeaders, and this is accepted by many servers. However, as you point out is should really send it in the Content-Type as an "action" parameter so you will need to raise a PMR for this.
FYI, the message you posted below when you said "I still get a 1.1 SOAP message created ... " is a SOAP 1.2 message (it's using the SOAP 1.2 namespace), it's just that the action is not in the Content-Type.
Kind regards, _________________ MGK
The postings I make on this site are my own and don't necessarily represent IBM's positions, strategies or opinions. |
|
Back to top |
|
 |
cevans |
Posted: Mon Aug 12, 2013 11:53 pm Post subject: |
|
|
Apprentice
Joined: 18 Jul 2013 Posts: 26
|
mgk wrote: |
I've had a quick look for you, and for SOAP 1.2 the Broker currently sends the SOAPAction in the HTTPHeaders, and this is accepted by many servers. However, as you point out is should really send it in the Content-Type as an "action" parameter so you will need to raise a PMR for this.
FYI, the message you posted below when you said "I still get a 1.1 SOAP message created ... " is a SOAP 1.2 message (it's using the SOAP 1.2 namespace), it's just that the action is not in the Content-Type.
Kind regards, |
Many thanks for clarifying this. It has been driving me mad! |
|
Back to top |
|
 |
|