That's awesome! I am able to get the value back in the header response. Just
need to figure out how to set the name of the element (default is 'Header').


Still, the header part seems kind of tricky to me. Perhaps the
@WebParam(header=true) way is much simpler, but unfortunately I cannot use
that.

On Fri, Oct 30, 2009 at 9:36 AM, Daniel Kulp <dk...@apache.org> wrote:

>
> If it's something as simple as just a String, it's probably easier to just
> use
> a DOM and don't bother with the Databinding stuff.   Using some CXF utils:
>
> Document doc = XMLUtils.newDocument();
> Element el  = XMLUtils.createElementNS(doc, qname);
> el.appendChild(XMLUtils.createTextNode(doc, "12345-67890");
>
> new Header(qname, el)
>
> If there isn't a databinding, it assumes a DOM.
>
> Dan
>
>
>
> On Fri October 30 2009 12:08:27 pm Arik Gorelik wrote:
> > Great. Thank you for the pointers. I am able to get the 'SoapMessage'
> > reference and call getHeaders, get the List, etc, etc. My interceptor is
> in
> > the PRE_STREAM phase and I am also experimenting in the MARSHAL phase as
> > well.
> >
> > However, I cannot seem to figure out how to bind my string literal "id"
> to
> > the actual header element. Is there a utility or an easy way to create a
> > 'Header' instance? I am using the constructor, but not 100% sure what I
> >  need to pass for the DataBinding. Here is my code:
> >
> > QName qname = new QName(message.getVersion().getHeader());
> > Object obj = "12345-67890";
> > DataBinding db = ?; // where can I get this?
> >
> > message.getHeaders().add(*new* Header(qname, obj, db));
> >
> > I really appreciate your help.
> > Arik.
> >
> > On Fri, Oct 30, 2009 at 7:06 AM, Daniel Kulp <dk...@apache.org> wrote:
> > > On Thu October 29 2009 9:07:16 pm Arik Gorelik wrote:
> > > > Basically, I am wondering if it is possible to set something in the
> > > > soap response header in the interceptor (not in the service method
> > > > implementation) during PRE_STREAM phase.
> > >
> > > Well, yea, but in an interceptor you have two options:
> > >
> > > 1) Exactly the same way as in (4).
> > > message.get(Header.HEADER_LIST)
> > > returns the List<Header> (or null in which case you create a
> List<Header>
> > > and
> > > add it)
> > >
> > > 2) If you interceptor is Interceptor<SoapMessage> or if you cast the
> > > passed in
> > > Message to a SoapMessage, there is a getHeaders() call on soapmessage.
> > >
> > >
> > > Dan
> > >
> > > > On Thu, Oct 29, 2009 at 2:09 PM, Arik Gorelik <arikg...@gmail.com>
> > >
> > > wrote:
> > > > > Seems like if there is a heavy dependency on CXF in the project (as
> > > > > in
> > >
> > > my
> > >
> > > > > case), the best option is this one:
> > > > >
> > > > > 4. CXF proprietary way: In the context
> > > > > (BindingProvider.getRequestContext() on client, WebServiceContext
> on
> > > > > server), you can add a
> > > > > List<org.apache.cxf.headers.Header> with the key
> Header.HEADER_LIST.
> > >
> > > The
> > >
> > > > > headers in the list are streamed at the appropriate time to the
> wire
> > > > > according to the databinding object found in the Header object.
> Like
> > > > > option 1, this doesn't require changes to wsdl or method
> signatures.
> > > > > However, it's much faster as it doesn't break streaming and the
> > > > > memory overhead is less.
> > > > >
> > > > > Let's say I want to return an ID in the header with every response,
> > > > > is that something I can do in the PRE_STREAM interceptor on the OUT
> > > > > scope?
> > > > >
> > > > > Arik.
> > > > >
> > > > >   On Thu, Oct 29, 2009 at 10:48 AM, Daniel Kulp <dk...@apache.org>
> > >
> > > wrote:
> > > > >>  On Thu October 29 2009 1:01:20 pm Arik Gorelik wrote:
> > > > >> > Hello,
> > > > >> >
> > > > >> > I cannot seem to find any example of how to include/set
> > >
> > > headers/values
> > >
> > > > >> in
> > > > >>
> > > > >> > the SOAP response. Is there a CXF example on that? I can think
> of
> > >
> > > few
> > >
> > > > >> ways
> > > > >>
> > > > >> > to do this, but was wondering if anyone has a best practice
> > > > >> > sample.
> > > > >>
> > > > >> See the faq:
> > > > >>
> > > > >> http://cxf.apache.org/faq.html
> > > > >>
> > > > >>
> > > > >>
> > > > >> --
> > > > >> Daniel Kulp
> > > > >> dk...@apache.org
> > > > >> http://www.dankulp.com/blog
> > >
> > > --
> > >  Daniel Kulp
> > > dk...@apache.org
> > > http://www.dankulp.com/blog
> >
>
> --
>  Daniel Kulp
> dk...@apache.org
> http://www.dankulp.com/blog
>

Reply via email to