File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Web Services Certification (SCDJWS/OCEJWSD) and the fly likes Handler soap-role and soap-header Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Java Interview Guide this week in the Jobs Discussion forum!
JavaRanch » Java Forums » Certification » Web Services Certification (SCDJWS/OCEJWSD)
Bookmark "Handler soap-role and soap-header" Watch "Handler soap-role and soap-header" New topic

Handler soap-role and soap-header

Jim Janssens
Ranch Hand

Joined: Sep 24, 2004
Posts: 210
In the webservice deployment descriptor where you define the handler, you may specify an element 'soap-role' and 'soap-header'. Both of them are needed to determine if the handler will be executed with a given SOAP request.

In order for the handler to execture a SOAP request, the SOAP request must at least have a header that is specified by the 'soap-header' and the actor attribute of that header must have the value of the 'soap-role' (otherwise the handler is not applied to that SOAP message).

I have 2 questions about this:

1) Why does a handler have to define a method getHeader() who return QNames of the headers that the handler may process? You allready specify this in the deployment descriptor (soap-header) so why also in the Handler itself ? It seems that there is a shortcut, using the handlerInfo.getHeader (HandlerInfo which is set by the init of the handler) which returns (atleast that is what I guess) the headers defined in the descriptor. But why do you have to do this ? and why is this not in the pre implemented methods of GenericHandler ? Or is there something wrong with my reasoning...

2) It is stated that when a SOAP message contains a header without an actor attribute, the header is meant for the 'final receiver'. What is the final receiver and how is it identified ? For example, if I specify a SOAP message without actor, and I have a handler without soap-role, will my handler be invoked for that message (given that the soap-header contains the name of the header to be processed) ?

I agree. Here's the link:
subject: Handler soap-role and soap-header
It's not a secret anymore!