Description
AxisService2WSDL11 serializes a policy reference attached on the message (in or out message) at the input (respectively output) of the wsdl operation in the portType definition. This essentially happens in the generatePortType method that is calling
addPolicyAsExtElement(inaxisMessage, input)
(respectively
addPolicyAsExtElement(outAxisMessage, output)
for the output). On the other hand the WSDL11ToAxisServiceBuilder expects to find the eventual policy at the message declaration in the wsdl definition. Examining the
WSDL11ToAxisServiceBuilder #populateOperations
when calling
copyExtensibleElements
for the respective message the builder passes
message.getExtensibilityElements()
instead of for example
wsdl4jInputMessage.getExtensibilityElements()
(which would get the policy reference from the Input rather than from the message declaration.) As a result the message level policy is not read from the wsdl generated by the same engine.
I'm not sure which is the right place for the message policy (probably both are right) or whether there is a recommendation about this but it would be nice to have the policy reference deserialized from and serialized at the same place - for example at the message declaration. I'll attach a patch if you like the proposal...