axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dittmann Werner <>
Subject AW: soap:header
Date Wed, 17 Apr 2002 15:17:35 GMT

just some questions and findings about soap headers.

If you refer to "SOAP spec brings in a soap:header element that
goes into the operation's binding: to what spec do you refer? 

The according chapter "RPC and SOAP Header" just states that by
"adding a header with a fixed name...." will additional context
transfered to the server. No further binding is described there, 
so IMHO it's up to the operation implemenation to look for a 
header with an appropriate name. Other headers may be contained 
in the header section as well. Therefore a application may prepare
all necessary headers for the service and the operation 
implementation looks for those that are relevant.

According to the client side handling of headers I digged into the
.NET/SOAP toolkit docs: they state that an application must provide 
a HeaderHandler object that provides the headers before sending a 
request and that consumes the headers when receiving a response. 
IMO headers are not processed in any way by the SOAP toolkit but
by the provided header handling object.

You may refer to the following link: (beware of line breaks)


> -----Urspr√ľngliche Nachricht-----
> Von: St-Germain, Sylvain []
> Gesendet: Mittwoch, 17. April 2002 16:22
> An:
> Betreff: RE: soap:header
> See [sylvain]'s Inline.
> -----Original Message-----
> From: Dittmann Werner []
> Sent: Wednesday, April 17, 2002 3:36 AM
> To: ''
> Subject: AW: soap:header
> Hi Charles, Sylvain,,
> about naming of headers. I don't believe that headers shall
> be associated to operations. As Sylvain mentioned some e-mails
> before headers are specific to a service, not to a specific
> operation of a service. Therefore IMHO headers should be
> transmitted for each operation of a service. The association
> to a service could be done either using the actor attribute i.e.
> the service may register an actor that handles the header or
> implicitly because the service is known.
> [sylvain] I disagree here.  SOAP spec brings in a soap:header 
> element that
> goes in the operation's binding.  When the operation is 
> invoked only the
> "registered" headers for that operation get sent.
> About handling of headers there are some options to consider:
> - setting the headers from the client. Shall be done service
>   specific as Sylvain and Charles proposed. I would also
>   support the proposal to use a service context to define
>   headers and not using method signatures. Using a
>   context would also support to define actor and mustUnderstand
>   attributes. This way is somewhat similar Microsoft .NET
>   does it: the client sets a Header process attribute, i.e.
>   an object that gets called just before the request is sent
>   and this object may then insert the header in the Envelope.
> - processing headers in resposnes from the server. Two things here:
>   if the server returns headers 
> 	shall they overwrite stored headers e.g. if they have the 
> 	same element identifier of the immidiate child element
> 	of the SOAP Header
>   or
> 	are received headers always stored in a spearate context and
> 	the client is responsible to handle them properly
>   Personally I would like to have them stored in a separate context
>   an have the client deal with them, IMHO it's a more flexible 
>   approach.
> [sylvain] Disagree, I belive returned headers should 
> overwrite existing
> headers.  They should be as less obstrusive as possible, from what I
> understand this is the .NET behaviour.
> I didn't look at header processing on the server side. Just some
> thoughts here:
> - Need some way to define and register actors. Global and service
>   specific actor registration necessary?
> - Doing an implicit or explict service context (refer to JAX-RPC,
>   chapter 11). I would see the implicit model as more appropriate.
> - which part deserializes/serializes headers and stores them in
>   the context (MessageContext?) and calls the header processing
>   module (that are registered using WSDD?)
> [sylvain] I am currently modifying WSDL2Java so the stubs 
> sets the header
> before invoke gets called and update the ServiceContext right after.
> Sylvain
> This message may contain privileged and/or confidential 
> information.  If you
> have received this e-mail in error or are not the intended 
> recipient, you
> may not use, copy, disseminate or distribute it; do not open any
> attachments, delete it immediately from your system and 
> notify the sender
> promptly by e-mail that you have done so.  Thank you.

View raw message