0
Moriarti
12.03.11
✎
13:19
|
Добрый день!
Разбираюсь с веб-сервисами в 1С,
нужно интегрировать с одной системой через веб-службы на java.
При возврате простого значения: string, int - проблем нет:
//--------------------------
ВебСервис = Новый WSОпределения("http://cpit-sles:8080/EAService2/services/ImagePort?wsdl");
Прокси = Новый WSПрокси(ВебСервис, "http://ws.filenet.com/", "ImageService", "ImagePort");
Результат = Прокси.getOSVersion("123");
// java code:
public String getOSVersion(String S)
{
return System.getProperty("os.version");
}
//--------------------------
Как известно, методы java возвращают значения только при помощи return, поэтому чтобы вернуть 2-3 значения приходиться оборачивать их в классы.
И вот тут натолкнулся на проблему.
// этот класс будем возвращать
public class DownloadResult
{
public final String a;
public final String b;
public DownloadResult(String buf, String fileName)
{
this.a = buf;
this.b = fileName;
}
};
// метод веб-сервиса
public DownloadResult downloadFile(String ChCode)
{
return new DownloadResult("123", "456");
}
///
В 1С:
Результат = Прокси.downloadFile("TestFrom1C");
Получаю ошибку:
------------------------------------------
Ошибка вызова операции сервиса: {
по причине:
Неизвестная ошибка. Ошибка преобразования данных XDTO:
Чтение объекта типа: { - [1,160]
Проверка дополнительного свойства:
форма: Элемент
имя: a
по причине:
Ошибка преобразования данных XDTO:
Чтение объекта типа: { - [1,160]
Проверка дополнительного свойства:
форма: Элемент
имя: a
по причине:
Ошибка проверки данных XDTO:
Структура объекта не соответствует типу: {
------------------------------------------
Предварительное создание экземпляра этого типа так же не помогает:
Результат = Фабрика.Создать(Фабрика.Тип("http://ws.filenet.com/", "downloadResult"));
Результат = Прокси.downloadFile("TestFrom1C-ChCode");
^^^ возникает так же ошибка "Структура объекта не соответствует типу: {"
Может кто сталкивался с этим?
|
|
1
Asmody
12.03.11
✎
13:43
|
фича старая, известная. не работает ws-ссылки с сервисами java корректно. уже несколько раз обсуждали, красивого решения не нашли. есть кривое - сохранить wsdl в файл, исправить объявления типов так, как это делает .net, подгрузить wsdl в 1ску.
|
|