Я создал .NET 1.1 Web Service, который должен принимать файлы и сохранять их.
Вот код веб-метода:
[WebMethod]
public bool SaveDocument(Byte[] docbinaryarray, string docname)
{
string dirPath = @"C:\Temp\WSTEST\";
if(!Directory.Exists(dirPath))
{
Directory.CreateDirectory(dirPath);
}
string filePath = dirPath + docname;
FileStream objfilestream = new FileStream(filePath, FileMode.Create, FileAccess.ReadWrite);
objfilestream.Write(docbinaryarray, 0, docbinaryarray.Length);
objfilestream.Close();
return true;
}
Когда я делаю клиент в .NET со ссылкой на этот веб-сервис, все идет отлично, но когда мой коллега пытается отправить мне файл с клиента JAVA, я не получаю фактический файл. Все, что я получаю, это байтовый массив только с одним элементом.
Определение байтового массива для файла, в WSDL выглядит так:
<s:element minOccurs="0" maxOccurs="1" name="docbinaryarray" type="s:base64Binary" />
Он посылает мне base64binary и каждый раз терпит неудачу. Все, что я получаю, это байтовый массив с одним одним элементом внутри.