I have created a JAX-WS client from a business partner's WSDL. I now have many JAXB objects for everything in the WSDL/XSD.
They have provided a data structure for me to fill in and add to the SOAP header which is used for message routing and authentication. After doing some reading I think the proper solution is for me to create a SOAPHandler that intercepts every request and adds the SOAPHeader. Below is a snippet of what my handleMessage method looks like: