Ладно - так что после нескольких царапин на голове я понял, что могу сам попытаться тиражировать метод getHeaders () и включить валидацию / etc в unmarshaller, чтобы выяснить, в чем проблема.
Iв итоге извлек заголовок как узел xml, используя следующее:
SOAPHeader soapHeader = context.getMessage().getSOAPHeader();
Object z;
XMLUtil xmlUtil = new XMLUtil();
for( Iterator<SOAPElement> it = soapHeader.getChildElements(new ObjectFactory().createServiceContext(null).getName()); it.hasNext(); ){
SOAPElement sc = it.next();
z = xmlUtil.unmarshall(sc, ServiceContextType.class);
}
В своем классе xmlUtil я могу создать свой собственный unmarshaller JAXB и включить проверку схемы, а не полагаться только на метод getHeaders (), чтобы сделатьвсе волшебно для меня.
Надеюсь, это может быть полезно для кого-то еще.
Спасибо,
Эрик