When the headers are read in and stored in the context.inMessage.Header the value of the header elements contains new line characters. So for the SOAP message:
...
<soap:Header>
<wsa:Action>
http://x.com/TestMethod
</wsa:Action>
...
The action header contains a new line character at the beginning and end of the string. ie "\n http://x.com/TestMehod\n
"
In the AddressInHandler.invoke method, the action is looked up to find an operation and it can't match anything because of the new line characters. In this line:
AddressingOperationInfo aop = AddressingOperationInfo.getOperationByInAction(service.getServiceInfo(), headers
.getAction());
the headers.getAction() returns the action value with new line characters.
They need to be stripped off somewhere along the way.