Lukasz, thanks a lot! Now I know where the errors in my approaches were and I
finally got the property into the message. Thumbs up! :)
Thanks! :)
Stefan
Am 05.10.2011 um 11:31 schrieb Łukasz Dywicki:
> Initialized exchange contains message. In your case sendOut contains message
> sent from Http endpoint to browser or software client (to service caller). If
> you wish set message property sent from http endpoint to nmr you should use
> MessageExchange.getMessage("in") and set properties on it.
>
> Regards,
> Lukasz
>
>> Hi Lukasz,
>>
>> thanks for the hint. I already did the first part (endpoint configuration)
>> the way you described it, however the implementation is still the problem. I
>> don't want to set properties of the exchange, I want to set properties of
>> the normalized message that is dispatched via this marshaler. How can I
>> achieve this?
>>
>> I also tried the following which doesn't work either:
>>
>> public class MyHttpSoapConsumerMarshaler extends HttpSoapConsumerMarshaler {
>> public void sendOut(MessageExchange ex, NormalizedMessage nMsg,
>> HttpServletRequest request, HttpServletResponse response) throws Exception {
>> nMsg.setProperty("a", "b");
>> super.sendOut(ex, nMsg, request, response);
>> }
>> }
>>
>> Thanks,
>> Stefan
>>
>>
>> Am 04.10.2011 um 20:06 schrieb Łukasz Dywicki:
>>
>>> Hey Stefan,
>>> You don't have to modify HttpSoapConsumerMarshaler, you may extend this
>>> class and reffer it instance using endpoint configuration:
>>> <bean id="my-bean-id" class="org.example.soap.MyMarshaler" />
>>>
>>> <http:consumer service="..." marshaler="#my-bean-id" />
>>>
>>> Your instance will be responsible for creating new exchanges. Example
>>> implementation:
>>>
>>> class MyMarshaler extends HttpSoapConsumerMashaler {
>>> public MessageExchange createExchange(HttpServletRequest request,
>>> ComponentContext context) throws Exception {
>>> MessageExchange ex = super.createExchange(request, context);
>>> ex.setProperty("a", "b"); // that's magic
>>> return ex;
>>> }
>>> }
>>>
>>> Best regards,
>>> Lukasz
>>>
>>>> Hi everybody,
>>>>
>>>> I'm trying to modify the HttpSoapConsumerMarshaler to embed some of my
>>>> SOAP headers of an incoming SOAP message as Message Properties into the
>>>> Normalized Message dispatched to the NMR. However I just can't figure out
>>>> how. I found out that the unmodified HttpSoapConsumerMarshaler embeds one
>>>> property into the Normalized Message that is itself a map of properties
>>>> originally associated with the SOAP message. But how can I set some of
>>>> these as single Message Properties without the map in between?
>>>>
>>>> Thanks,
>>>> Stefan
>>>
>>
>