on 04-03-2014 3:31 AM
Hello Experts,
I need to implement a scenario where in sender will add custom header fields and in PI, the values needs to captured. Second step: Based on the custom header value, the receiver needs to be determined.
Scenario: SOAP Sender -> PI -> SOAP Receiver
Request Message:
<RequestMsg>
<request>
<Field 1>...</Field 1>
<Field 2>...</Field 2>
<Field 3>...</Field 3>
</request>
</RequestMsg>
Without any custom SOAP header, I have created Request / Response Message, Message Mapping, Service Interfaces (Inbound & Outbound) and Operation Mapping and tested the scenario by triggering call through SOAP UI, it works fine. SOAP Request XML looks like below:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:v1="http://www.test.abc.com/v1">
<soapenv:Header />
<soapenv:Body>
<v1:RequestMsg>
<request>
<Field 1>1</Field 1>
<Field 2>2</Field 2>
<Field 3>3</Field 3>
</request>
</v1:RequestMsg>
</soapenv:Body>
</soapenv:Envelope>
To use customer fields in SOAP Header, I have checked the option "Do Not Use SOAP Envelope" in the SOAP Sender CC and added "&nosoap=true" to url. SOAP Request XML looks like below:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:v1="http://www.test.abc.com/v1">
<soapenv:Header >
<id>REC1</id>
</soapenv:Header >
<soapenv:Body>
<v1:RequestMsg>
<request>
<Field 1>1</Field 1>
<Field 2>2</Field 2>
<Field 3>3</Field 3>
</request>
</v1:RequestMsg>
</soapenv:Body>
</soapenv:Envelope>
Now, when I invoke the url, I see that the message reaches PI but it throws error: RoutingException: InterfaceDetermination did not yield any actual interface
Please note that I have added a Java Mapping before main message mapping to read the soap header and pass only the request message to the next message mapping.
I am sure, I am missing important steps in the configuration. Please help me in reolving the issue.
Thanks & Regards,
Ankit Srivastava
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello Hareesh,
Bingo! The second option suggested by Nicolas worked like a charm. I am just copying the same here:
-----In ESR, you set the attribute "Interface Pattern" of the outbound service interface as "Stateless (XI30-compatible)", which does not use operations.----
Thanks a lot. Now, I will be able to concentrate on the next steps.
Regards,
Ankit Srivastava
User | Count |
---|---|
94 | |
11 | |
10 | |
9 | |
9 | |
7 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.