I've been using JBossWS 1.2.1 along with Sun's Wiseman API for WS-Management development. Let's say it's an eye-opening experience. After days of hard debugging, here are some of the issues (or non-issues) I found. Either case, I hope my time spent can be of some value.
1. WRONG_DOCUMENT_ERR when marshaling a SOAP document complaining that caller tries to append a node to another node that belongs to a different owner document
Turns out the problem was caused by DOMUtils, which uses ThreadLocal to keep track of owner document. This would work fine if everything is in the same thread. But in my case, Wiseman code constructs a response message, and then pass that response object to a separate handler thread for further processing. And that becomes a _problem_. I'm not sure about the rationale behind the threadlocal mechanism, but to me assuming all DOM processing is in one thread is simply dangerous. Thoughts?
2. JAXB and JBossWS compatibility issue
The upper-level code (Wiseman) constructs a SOAP message, and uses JAXB to marshal content to the body, something like "marshaller.marshal(contentObj, getBody())". The result: only the top-level node gets added to the body, but not its decedents. After some digging, I found the problem was caused by SOAPBodyImpl.appendChild(), which constructs a new child from the existing child node. This apparently is a problem for JAXB, since the subsequent tree construction is all based on the original child node.
FYI, I'm using JBossWS 1.2.1GA.