XOPObject content null after remote:invoke

I am trying to send mtom attachments with no luck so far.
My main concern is: How does pub.remote:invoke affects XOPObject? When sending a document with an XOPObject field in it from an IS to another through remote:invoke the getXOPObjectContent returns null on the target IS. Has it got something to do with XOPObjects not being accessible in saved/restored pipelines?
I would greatly appreciate any help.

Cheers,
Attila

MTOM or XOP is for sending attachments via web services.
If you are doing remote invoke between WM instances, you can just put anything you want to pass over in the pipeline, you don’t need to use XOP. If you are passing large payload, performance will be a concern.
HTH,

That is all fine and dandy mate, but the question remains: what happens when I try sending an XOPObject through pub.remote:invoke???
Is the pipeline saved and restored during the invokation? That would explain why the XOPObject is lost in the remote service.

The reason I am sending XOPObject using remote:invoke is that I have documents containing XOPObjects on the source IS in the first place and I thought it would be nice to use them as they are on the target IS where I am sending out these documents in web service requests. Any conversion/transformation would be a seemingly unnecessary extra work.

Add broker to the question. How do I send XOPObject through broker?
When I create an XOPObject with pub.soap.utils.createXOPObject, put it in a synchronized, publishable document and invoke pub.publish:publishAndWait I get this error:

com.wm.app.b2b.server.ServiceException: [ISS.0098.9007] Data does not conform to the Publishable Document Type t00cc_chmmgmtsm9.functional.test:attachment errors: null

The reason is the XOPObject field of the document is null. But why?

My process looks like this:

  1. Receive SOAP requests containing attachments in my ws provider on SOURCE IS
    -Attachments are manifested in form of XOPObject-s
  2. Forward the received document to TARGET IS - this is the problematic part
  3. Invoke third party web service from TARGET IS with the forwarded document as soap request.
  4. Receive response on TARGET IS
  5. Return response to SOURCE IS
  6. Return response to client.

Cheers,
Attila

Hi Attila,

Maybe this information will help you:

  1. The using of MTOM in integration server is covered here: Issue with pub.soap.utils:getXOPObjectContent ..... MTOM objects - webMethods - Software AG Tech Community & Forums

  2. The reason why the XOPObject is null is explained here: MTOM streaming of attachments - webMethods - Software AG Tech Community & Forums

Basically the fact that the XOPObject appears null is just an issue of displaying the object in the Developer/Designer tools and does not affect the functionality.

Hope it helps,
Vlad Turian

Hi Vlad,

Thanks for your support. In my experience XOPObjects are not just displayed as null but they are really null. This of course does affect functionality. If I want to send XOPObject through pub.remote:invoke from one IS instance to the other I need to convert the content to either a byte array or a base64 encoded string on the source IS and re-create the XOPObject on the Target. It would have been nice if it was mentioned in the documentation.

Cheers,
Attila

Attila - I agree with you that it is not documented, there are a few things which we come to know when we face some issue around it.

Thanks,

One way is create a web service in the target server by consuming source service.
I did in this fashion to get the documents from source :lol:

Regrds,
Syed