Hello,

I found some problems using .NET client with XFire endpoints when MTOM is
used and the size of binary data is small.

The trouble is, .NET provides some "optimization", i.e.
"If the compressed byte array does not reach the XOP size threshold of 768
then WSE will not XOP the resulting payload "
http://devauthority.com/blogs/area51/archive/2006/07/09/1534.aspx

So in fact I am getting the XML content like
<data>VGhpcyBpcyBhIHNpbXBsZSB0ZXh0IGRvY3VtZW50Lg0KDQpZZXMgaXQgaXMu</data>
instead of <data><Include> <href=... /> </Include></data>

What's the best way to deal with the problem ? I looked at the XFire source
code which handles the binary arrays, it looks like this :

public Object readObject(MessageReader reader, MessageContext context)
      throws XFireFault
    {
        Object o = null;
        while (reader.hasMoreElementReaders())
        {
            MessageReader child = reader.getNextElementReader();
            if (child.getName().equals(XOP_INCLUDE))
            {
                MessageReader mimeReader =
child.getAttributeReader(XOP_HREF);
                String type = mimeReader.getValue();
                o = readInclude(type, child, context);
            }
            child.readToEnd();
        }

        return o;
    }

so in fact it only returns the object if there is XOP_INCLUDE specified.

Should I try to create my own mapping for the binary array which would try
also to read the current element ? Any another alternatives ?
Of course, it is always a temptation to say "that's Microsoft fautl and i
do not care":)

Thanks,

Nikolajs Krasnikovs, IDBS
Tel : +44 (0) 1483 595043 (x196)


---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email

Reply via email to