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/>