Может ли VS.NET использовать Java WS без создания структур-оболочек? - PullRequest
0 голосов
/ 03 мая 2011

При определении простого веб-сервиса в Java (Eclipse) и использовании сервиса в Visual Studio сгенерированный код содержит структуру запроса и ответа для каждого метода сервиса.Сгенерированный клиентский интерфейс имеет методы, которые принимают структуру запроса и возвращают значение из структуры ответа.

Например, если у меня есть класс обслуживания SimpleTest с методом add (int a, int b), я получаюследующий сгенерированный интерфейс (аннотации удалены):

public interface ISimpleTest
{
    MyNamespace.WebServiceProxy.addResponse add(
        MyNamespace.WebServiceProxy.addRequest request);
}

Однако, если я создаю по существу тот же класс, что и веб-служба WCF, код создает следующий интерфейс:

public interface ISimpleTest 
{                
    int Add(int a, int b);
}

IХотелось бы выяснить, есть ли способ избежать использования классов-оболочек при использовании сервиса Java.Позволит ли определение типов данных в XSD разрешить это, или .NET всегда будет генерировать эти оболочки при использовании службы, отличной от .NET?Мы бы хотели обойти сгенерированный клиент и реализовать интерфейс самостоятельно (без упаковщиков).Возможно ли это?

Ответы [ 2 ]

0 голосов
/ 03 мая 2011

Вы определенно можете сделать это, используя WCF.Вы должны иметь возможность определять свой интерфейс на стороне клиента следующим образом:

[ServiceContract]
public interface ISimpleTest
{
    [OperationContract]
    int Add(int a, int b);
}

Оттуда вы можете настроить реализацию вашего клиента через конфигурацию клиента или через код .

0 голосов
/ 03 мая 2011

Если бы мне пришлось угадать, это потому, что Visual Studio для внешнего веб-сервиса (Java, Perl, Ruby и т. Д.) Необходимо скачать WSDL из этого сервиса и затем сгенерировать заглушки .NET на основе WSDL, который является интерфейс всех веб-сервисов.

Благодаря веб-службе WCF у него уже есть доступ к классам и т. Д. Для прокси, поэтому ему не нужно создавать заглушки и скелеты для вызова веб-службы.

Это всего лишь предположение ...

Единственный способ сделать это без оболочки - это если вы сами создали ответы на все запросы SOAP и отправили их через необработанный HTTP в веб-службу. Это грязный код, и по этой причине генератор оболочки .NET существует, чтобы оградить вас от этого беспорядка!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...