Message handlers offer an interesting, if somewhat complicated, solution to the problem of handling header blocks in SOAP messaging. The design allows you to plug in message handlers for different header blocks easily. Message handlers benefit from the same robust operation environment enjoyed by the J2EE components they serve, because they are extensions of the J2EE components. Alas, message handlers are kind of easy to mess up. You have to remember that they cannot maintain state from one invocation to the next. In addition, message handlers may be used by multi-threaded J2EE clients or JSEs, in which case you must consider thread synchronization and contention. If you keep those concerns in mind, though, you should be able to develop very robust and powerful messaging handlers for processing just about any type of header block, industry-standard or proprietary.