I always use a SOAPHandlers to make the majority of the adaptations regarding the SOAP headers.
There is an annotation that makes possible to say that a parameter SHOULD be conveyed using headers (
(header=true)but that is all I'm awared of. By its nature, it does not seems to express what you were looking for...
By default, not providing a mustUnderstand attribute, the WS stack should recognize the header as optionnal.
This was my 2 cents...