Hi, we don't use java on the client side, we use gSOAP (C++). The issue with having the server accept a DataHandler is that there is, as far as I can tell, no defined mapping from a DataHandler to any combination of C++ or C# types. If you define a WSDL file using this type, no non-java toolkit will be able to figure out what a DataHandler "is".
What I was suggesting is that the server side must export and accept files / BLOBs using a type that does have a well-defined mapping to C++ and C# base types, in other words that you must write your own code on the server side to marshall the attachment to / from a simple binary buffer which can be sent / received using the well-defined base64Binary type.
<definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:s="http://www.w3.org/2001/XMLSchema" ...
xmlns="http://schemas.xmlsoap.org/wsdl/">
...
<s:complexType name="GetImageReturnParam">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Image" type="s:base64Binary" />
</s:sequence>
</s:complexType>
<s:element name="AddExamImage" type="s0:AddExamImageParams" />
<s:complexType name="AddImageParams">
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="FolderID" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="FileName" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Image" type="s:base64Binary" />
</s:sequence>
</s:complexType>
The types in the above WSDL are the response from a service to download an image file, and a service to upload an image to a folder using the name supplied. In this case the server is IIS with .NET and the client it gSOAP (C++).
----Dave
At 02:10 PM 11/12/2003 -0500, you wrote:
I am trying to understand this interop issue in relation to my
applications requirements.
My clients are sending a .war file as an attachment to my service. My
client is adding it as an attachment using a ByteArrayDataSource. The
server gets the DataHandler InputStream and streams the content to file
or DB. The client is using DIME.
In order to interoperate with all SOAP(DIME) clients does the client
have to Base64 encode the .war byte[] before adding the attachment or
will this byte[] get encoded by DIME and be properly decoded by any DIME
client?