Author |
Message
|
Thripura Sundari |
Posted: Wed Aug 03, 2005 2:29 am Post subject: Need Return Context Info - Exception |
|
|
Acolyte
Joined: 13 Jun 2005 Posts: 57 Location: Bangalore, India
|
Hi all,
I am trying to convert XML format into SOAP response format and I am getting Need return Context Info Exception. text 3143.
I am actually assigning the elements individually.
My trace after comverting the XML to SOAP Response and before the HTTPReply node is as follows:
Code: |
(
(0x01000000):Properties = (
(0x03000000):MessageSet = NULL
(0x03000000):MessageType = NULL
(0x03000000):MessageFormat = NULL
(0x03000000):Encoding = NULL
(0x03000000):CodedCharSetId = NULL
(0x03000000):Transactional = UNKNOWN
(0x03000000):Persistence = UNKNOWN
(0x03000000):CreationTime = NULL
(0x03000000):ExpirationTime = NULL
(0x03000000):Priority = NULL
(0x03000000):ReplyIdentifier = NULL
(0x03000000):ReplyProtocol = 'MQ'
(0x03000000):Topic = NULL
)
(0x01000010):XMLNS = (
(0x05000018): = (
(0x02000000): = ''
(0x06000011): = '1.0'
(0x06000012): = 'UTF-8'
)
(0x01000000)http://schemas.xmlsoap.org/soap/envelope/:Envelope = (
(0x07000012)xmlns:SOAP-ENV = 'http://schemas.xmlsoap.org/soap/envelope/'
(0x07000012)xmlns:xsi = 'http://www.w3.org/2001/XMLSchema-instance'
(0x07000012)xmlns:xsd = 'http://www.w3.org/2001/XMLSchema'
(0x01000000)http://schemas.xmlsoap.org/soap/envelope/:Body = (
(0x01000000)tns:ShipSearchPortType:ShipSearch = (
(0x07000012)xmlns:ns1 = 'tns:ShipSearchPortType'
(0x07000012)http://schemas.xmlsoap.org/soap/envelope/:encodingStyle = 'http://schemas.xmlsoap.org/soap/encoding/'
(0x01000000):ShipSearchResponseBody = (
(0x07000012)xmlns:ns2 = 'http://tempuri.org/ShipSearch/definitions'
)
(0x01000000):ShipSearchResponse = (
(0x01000000):CruiseA = (
(0x01000000):ShipDetailsOut = (
(0x01000000):CruiseSailingId = (
(0x02000000): = '1'
(0x03000000)http://www.w3.org/2001/XMLSchema-instance:type = 'xsd:int'
)
(0x01000000):CruiseLineId = (
(0x02000000): = '1'
(0x03000000)http://www.w3.org/2001/XMLSchema-instance:type = 'xsd:int'
)
(0x01000000):DestinationCitycode = (
(0x03000000)http://www.w3.org/2001/XMLSchema-instance:type = 'xsd:string'
)
(0x01000000):SailingDate = (
(0x02000000): = '2005-07-31 00:00:00'
(0x03000000)http://www.w3.org/2001/XMLSchema-instance:type = 'xsd:string'
)
(0x01000000):Duration = (
(0x02000000): = '8'
(0x03000000)http://www.w3.org/2001/XMLSchema-instance:type = 'xsd:string'
)
(0x01000000):preCrusingInfo = (
(0x03000000)http://www.w3.org/2001/XMLSchema-instance:type = 'xsd:string'
)
(0x01000000):postCrusingInfo = (
(0x03000000)http://www.w3.org/2001/XMLSchema-instance:type = 'xsd:string'
)
)
)
(0x01000000):CruiseB = (
(0x01000000):ShipDetailsOut = (
(0x01000000):CruiseSailingId = (
(0x02000000): = '1'
(0x03000000)http://www.w3.org/2001/XMLSchema-instance:type = 'xsd:int'
)
(0x01000000):CruiseLineId = (
(0x02000000): = '2'
(0x03000000)http://www.w3.org/2001/XMLSchema-instance:type = 'xsd:int'
)
(0x01000000):DestinationCitycode = (
(0x02000000): = 'SFO'
(0x03000000)http://www.w3.org/2001/XMLSchema-instance:type = 'xsd:string'
)
(0x01000000):SailingDate = (
(0x02000000): = '8/3/2005 3:50:12 PM'
(0x03000000)http://www.w3.org/2001/XMLSchema-instance:type = 'xsd:string'
)
(0x01000000):Duration = (
(0x02000000): = '5'
(0x03000000)http://www.w3.org/2001/XMLSchema-instance:type = 'xsd:string'
)
(0x01000000):preCrusingInfo = (
(0x02000000): = 'TBD'
(0x03000000)http://www.w3.org/2001/XMLSchema-instance:type = 'xsd:string'
)
(0x01000000):postCrusingInfo = (
(0x02000000): = 'TBD'
(0x03000000)http://www.w3.org/2001/XMLSchema-instance:type = 'xsd:string'
)
)
)
)
)
)
)
)
) |
The values that come here are correct. I am not able to make out what is wrong. Can you please help me?
Regards,
Thripura Sundari |
|
Back to top |
|
 |
elvis_gn |
Posted: Wed Aug 03, 2005 2:57 am Post subject: |
|
|
 Padawan
Joined: 08 Oct 2004 Posts: 1905 Location: Dubai
|
Hi,
I would not even go to the second line of the code after seeing that the properties have messageSet etc as NULL.....How will WBI know what it is supposed to reply to....
R u missing out on setting these values ?? |
|
Back to top |
|
 |
Thripura Sundari |
Posted: Wed Aug 03, 2005 3:08 am Post subject: |
|
|
Acolyte
Joined: 13 Jun 2005 Posts: 57 Location: Bangalore, India
|
Hi,
I thought that would be the reason, so i tried setting the Message Set alone in the OutputRoot properties, but didnt help.
I still get the same problem. In the message set, I have provided a message type as wsdl:output which is the same as the one I get. I dont understand what is the problem.
Please help.
Regards,
Thripura Sundari |
|
Back to top |
|
 |
elvis_gn |
Posted: Wed Aug 03, 2005 4:11 am Post subject: |
|
|
 Padawan
Joined: 08 Oct 2004 Posts: 1905 Location: Dubai
|
Hi
I have not used a SOAP but the overall logic of copying the headers should apply, I guess....
After doing that, change the set,format and type....
How does the HTTPReply node know what to reply to ?? |
|
Back to top |
|
 |
jefflowrey |
Posted: Wed Aug 03, 2005 4:16 am Post subject: Re: Need Return Context Info - Exception |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Thripura Sundari wrote: |
I am getting Need return Context Info Exception. text 3143. |
Where are you getting this?
Is this a BIP error? An HTTP Error? An application error on the other side?
Also,
_________________ I am *not* the model of the modern major general.
Last edited by jefflowrey on Wed Aug 03, 2005 4:23 am; edited 1 time in total |
|
Back to top |
|
 |
Thripura Sundari |
Posted: Wed Aug 03, 2005 4:22 am Post subject: |
|
|
Acolyte
Joined: 13 Jun 2005 Posts: 57 Location: Bangalore, India
|
Hi,
We found that the problem is because of the HTTP Context is not carries from HTTP Input to the HTTP reply. This is because they are in different message flows. I am using the Aggregate set of nodes, so, they are in different message flows. Is it possible to get the aggregation message flows in to one flow or how do I pass on the context where the response has to be sent?
Regards,
Thripura Sundari |
|
Back to top |
|
 |
jefflowrey |
Posted: Wed Aug 03, 2005 4:25 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
I would say that you need to copy the appropriate pieces of the LocalEnvironment into the Aggregate Request messages, so that you can rebuild it when you get aggregate replies.
Or store it into a database table on your own. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
Thripura Sundari |
Posted: Fri Aug 05, 2005 4:50 am Post subject: |
|
|
Acolyte
Joined: 13 Jun 2005 Posts: 57 Location: Bangalore, India
|
Hi Jeff,
Actually, the process is like this:
I need to receive a SOAP Request, convert it to XML and send it to two different places, 1- make a database call, and retrieve some response.
2- convert the xml to SOAP format, send it to another web service and get the SOAP response and convert it to XML
Then, finally combine these two XMLs in the BuildOutput (similar to the airline example) of the Aggregate node and send it to an MQ Output node. Then, I have another compute node where I get the message from the MQ Output node and convert the XML (combined) to XMLNS and send as response through the HTTP Reply.
I now changed the message flow such that the HTTP request and HTTP reply nodes are in the same flow.
I then set
Code: |
SET Environment.mydestMQMD = InputLocalEnvironment; |
in the compute node immediately after the HTTP request node. Then, i set
Code: |
SET OutputLocalEnvironment=Environment.mydestMQMD; |
in the node before the HTTP Reply node.
I have one inner flow where the database call and the call to the web service are being made and sent to the REPLIES Queue. When I get the data in the BuildOutput compute node, I lose the Environment Information.
Actually, I had set Environment for the web service so that the request and response work fine for the web service which I am calling with in the flow.
I am not getting the localenvironment information after the aggregate reply node.
What is the solution for this?
I think I am confusing between Environment and LocalEnvironment and their scope. |
|
Back to top |
|
 |
jefflowrey |
Posted: Fri Aug 05, 2005 4:55 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Thripura Sundari wrote: |
I then set
Code: |
SET Environment.mydestMQMD = InputLocalEnvironment; |
in the compute node immediately after the HTTP request node. |
I would do this immediately after the HTTPInput node.
More than that, I can't help you with right now. If I find time later today or tomorrow, I'll see if I can prototype something that works. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
Thripura Sundari |
Posted: Fri Aug 05, 2005 7:23 pm Post subject: |
|
|
Acolyte
Joined: 13 Jun 2005 Posts: 57 Location: Bangalore, India
|
Hi Jeff,
Thanks. That is what I had done. I have given the
Quote: |
SET Environment.mydestMQMD = InputLocalEnvironment; |
after the HTTP Input node only.
Also, I had written that
Quote: |
I now changed the message flow such that the HTTP request and HTTP reply nodes are in the same flow. |
. I made it such that the HTTP Input Node and the HTTP Reply nodes are in the same Message flow, actually what you have suggested now.
Sorry, I am not confused between HTTP Input and HTTP Request nodes, but that I get the request at the HTTP Input node from an external web service, so, I just mentioned it as request. Sorry for the confusion.
Thanks Jeff for your help.
Regards,
Thripura Sundari. |
|
Back to top |
|
 |
|