cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Eoghan Glynn <eogl...@gmail.com>
Subject Re: wsa:From MAP on response message not present
Date Thu, 07 Jan 2010 21:27:52 GMT
Hi Rebacca,

Try adding an interceptor like the example below to the out-chain on the
server side. Note this code is off the top of my head, so may need need some
minor tweaks.

Cheers,
Eoghan


import org.apache.cxf.message.Message;
import org.apache.cxf.ws.addressing.AddressingProperties;
import org.apache.cxf.ws.addressing.ContextUtils;
import org.apache.cxf.ws.addressing.MAPAggregator;

public class WSAFromSetter extends AbstractPhaseInterceptor<Message> {

    public WSAFromSetter() {
        super(Phase.PRE_LOGICAL);
        addAfter(MAPAggregator.class.getName());
    }

    public void handleMessage(Message message) {
        addFrom(message);
    }

    public void handleFault(Message message) {
        addFrom(message);
    }

    private addFrom(Message message) {
        if (ContextUtils.isOutbound(message)
            && !ContextUtils.isRequestor(message)) {
            AddressingProperties outMaps =
                ContextUtils.retrieveMAPs(message, false, true);
            AddressingProperties inMAPs =
                ContextUtils.retrieveMAPs(message, false, false);
            if (outMaps != null && outMaps.getFrom() == null && inMaps !=
null) {
                outMaps.setFrom(inMaps.getFrom());
            }
        }
    }
}


2010/1/7 rduhard <rebecca@duhard.ca>

>
> Thanks for the reply. After reading the WS-Addressing spec more closely I
> realized that it is indeed not a required property on the response.
>
> The change you refer to would definitely be what was required for our
> interoperability. In the meantime, how would I go about explicitly setting
> it within the application?
>
> Thanks again,
> Rebecca
>
>
> Eoghan Glynn-4 wrote:
> >
> > Folks,
> >
> > The /wsa:From header is optional, and CXF does not generate a default
> > value
> > for this if not explicitly set by the application. (Though if this header
> > is
> > actually set in the message addressing properties, then it will of course
> > be
> > included in the out-going payload).
> >
> > We could quiet easily change this policy though, for example to set the
> > /wsa:From in the outgoing response payload to default to the /wsa:To
> > received in the corresponding incoming request. Let me know if this
> change
> > would address your interop requirement.
> >
> > Cheers,
> > Eoghan
> >
> > 2010/1/6 Craig Tataryn <craiger@tataryn.net>
> >
> >> Was wondering if anyone knew the answer to this?  We need this for
> >> interoperability testing with our vendor.
> >>
> >> Craig.
> >>
> >>
> >> On 30-Dec-09, at 11:37 AM, rduhard wrote:
> >>
> >>
> >>> Is there a way to have CXF generate the <wsa:From> MAP on the outgoing
> >>> response message? It seems to only generate To, Action, MessageID and
> >>> RelatesTo elements.  The client requires the the From element also be
> >>> populated, but I haven't been able to find a way to have it included.
> >>> <wsa:To> element is NOT anonymous on the request message if that makes
> >>> any
> >>> difference.
> >>>
> >>> Any help is much appreciated.
> >>>
> >>> thanks,
> >>> Rebecca
> >>>
> >>>
> >>> --
> >>> View this message in context:
> >>>
> http://old.nabble.com/wsa%3AFrom-MAP-on-response-message-not-present-tp26970149p26970149.html
> >>> Sent from the cxf-user mailing list archive at Nabble.com.
> >>>
> >>>
> >>
> >
> >
>
> --
> View this message in context:
> http://old.nabble.com/wsa%3AFrom-MAP-on-response-message-not-present-tp26970149p27063606.html
> Sent from the cxf-user mailing list archive at Nabble.com.
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message