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

Reply via email to