If you are writing a web service and come across the following message in a SOAP Fault or a stack trace then don’t go digging around trying to find the code that caused the fault, take heed of the following information:
“A required header representing a Message Addressing Property is not present” is the [reason] string for a WS-Addressing specification defined fault which a compliant WS-Addressing implementation MUST throw if a wsa:Action header is not found and WS-Addressing is in use (e.g. the service WSDL contains a wsaw:UsingAddressing element with wsdl:required=”true” attribute).
So if you see that message it’s a sign that either:
- Your client is incorrectly adding WS-Addressing headers
- The server is expecting WS-Addressing and the client did not send it
So. Check the documentation for your client and server to properly configure your client and server with regards to WS-Addressing. That will fix the problem in 90% of cases*.
*Number a total guess. Likely that the accurate figure is closer to 100%
[Update 2006-10-07] This fault will also occur if a wsa:Action element is present but does not contain a value.

interesting post. I hope you continue writing such informative stuff
Hello,
I know this post is old and thank you very much for sharing this info.
I recently had the problem you described and I couldn’t find a solution across the web.
I had a working web service and a working client for it. I made some changes to the web service source code (nothing to do with security – just added a new function) and I was unable to deploy it on glassfish 2.1 and with glassfish 3 it was deployed fine but client was returning the above error.
The solution was to delete the web.xml file produced by netbeans under Web Pages/WEB-INF. After deleting web.xml deploy and test run smoothly (as should from the beginning).
Hope this will help others looking ‘desperately’ for a solution to the above error.
Thank you
p.s. great blog! you may visit mine too