I have a question on the JMS binding. If I were set up I'd just experiment,
but let me just ask....
It looks to me like we're requiring the service client/impl to use OMElement
as its programming model (i.e. app databinding).
I say this looking at class JMSBindingReferenceBindingProvider and method:
protected void setXMLDataBinding(RuntimeComponentReference reference) {
try {
InterfaceContract ic =
(InterfaceContract)reference.getInterfaceContract().clone();
Interface ii = (Interface)ic.getInterface().clone();
ii.resetDataBinding("org.apache.axiom.om.OMElement");
ic.setInterface(ii);
reference.setInterfaceContract(ic);
...
This looks to me like it will "turn off" the DataTransformationInterceptor.
But later in XMLTextMessageProcessor I see:
@Override
protected Message createJMSMessage(Session session, Object o) {
try {
TextMessage message = session.createTextMessage();
if (o instanceof OMElement) {
message.setText(o.toString());
} else if ((o instanceof Object[]) && ((Object[])o)[0]
instanceof OMElement) {
message.setText(((Object[])o)[0].toString());
} else if (o != null) {
throw new IllegalStateException("expecting OMElement
payload: " + o);
}
....
which shows we only accept OMElement data.
So is my understanding correct?
If not, my bigger concern is understanding more details about the
serialization/deserialization of the TextMessages, but let me start with
just that question.
Thanks,
Scott