The was:addressing feature element does have a addressingRequired=true/false 
attribute that I was HOPING would turn on the MustUnderstand header.  However, 
it’s not.   It’s currently only used on the server side to make sure the client 
sent addressing headers.   I’m going to poke around and see if it’s something 
that can be changed.

Dan


> On Jul 18, 2018, at 11:43 AM, Tóth Csaba <ig...@domen.hu> wrote:
> 
> Hello!
> 
> I have a (proxy) client inside a server environment. (I have more clients) 
> And, need to turn on the WSA, and the mustUnderstand attribute in some fields 
> (not all, and not for all client)
> 
> I already set up the config:
> 
>   <jaxws:client id="ClientRegistry"
>         serviceClass="myServicePortType"
>         address="http://myEndpoint";>
>         <jaxws:binding>
>         <soap:soapBinding version="1.2" mtomEnabled="false" />
>         </jaxws:binding>
>         <jaxws:features>
>             <wsa:addressing xmlns:wsa="http://cxf.apache.org/ws/addressing"/>
>           </jaxws:features>
>       </jaxws:client>
> 
> Its create the WSA elements into the header, but no clue how to set some to 
> mustUnderstand.
> 
> I found a solution 
> (https://mail-archives.apache.org/mod_mbox/cxf-users/201504.mbox/%3cd225cd69196f3f4a9f4174b2fca06f8812111...@s10be002.sh10.lan%3E):
> 
>    final MessageContext mc = wsContext.getMessageContext();
> 
>    AddressingProperties maps = new AddressingPropertiesImpl();
>    List<QName> mustUnderstandList = maps.getMustUnderstand();
>    mustUnderstandList.add(Names.WSA_ACTION_QNAME);
>    mustUnderstandList.add(Names.WSA_TO_QNAME);
>    mc.put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES, maps);
> 
> 
> but for that, I need a MessageContext, but in my code I have only 
> BindingProvider (after cast the myServicePortType class).
> 
> There are more solution to create the header WSA nodes by code:
> 
>        List<Header> headers = new ArrayList<Header>();
>         // action:
>         Header actionHeader = new Header(new 
> QName("http://www.w3.org/2005/08/addressing";, "Action"), "myaction",
>                 new JAXBDataBinding(String.class));
>         headers.add(actionHeader);
> bindingProvider.getRequestContext().put(Header.HEADER_LIST, headers);
> 
> But I think with the features is more elegant.
> 
> I looking the  BindingProvider version of the first solution...
> 
> Thanx
> 
> Csaba
> 
> 
> ps: there is a method to turn on the outgoing message multipart if needed (if 
> there is a binary payload, and not for always?)
> 
> 

-- 
Daniel Kulp
dk...@apache.org <mailto:dk...@apache.org> - http://dankulp.com/blog 
<http://dankulp.com/blog>
Talend Community Coder - http://talend.com <http://coders.talend.com/>

Reply via email to