If a have a contract that has en empty parameter as a composite service interface, and the binding puts a Message in the Exchange, this message gets into the component if the component implementation is Camel (Haven't checked with BPM and BPEL).
Modify the quickstart camel-jaxb and set the contract in GreetingService to: "GreetingResponse getResponse();"
This should say that it expects an Empty message, but if there is a message in the Exchange, due to difference in contracts (a param set in the composite service), no contract defined at the Composite Service (so using the component service's contract), then this Message gets into the Component.
This situation leads to:
-
Improper recognition/definition of transformers
-
Not honoring the contract
-
Difficult to debug situations, as the InboundHandlers relies on the expected type to do the message composition. (NOTE that if the type is null, no message transformation might be done at the composer, but the message gets leaked)
|