Доступ к WCF-сервису с использованием Java - PullRequest
0 голосов
/ 16 сентября 2009

Я разрабатываю веб-сервис с использованием WCF, доступ к которому я хочу получить с помощью клиента, написанного на Java. Я буду кодировать сообщения с использованием протокольных буферов (точнее с protobuf-net Марка Гравелла).

Возможно ли это достичь или клиент должен быть написан также на .NET? Я знаю, что данные, сериализованные с использованием протокольных буферов, являются двоично-взаимозаменяемыми, но я не знаю, добавляет ли WCF какие-либо специфичные для платформы метаданные поверх закодированных протокольных сообщений.

Мне все равно, является ли служба WCF RESTful, на основе SOAP или любой другой формой поддержки WCF, я просто хочу, чтобы фактическая полезная нагрузка кодировалась с использованием PB. Возможно ли это, и если это так, я был бы очень признателен за краткий пример.

Ответы [ 2 ]

1 голос
/ 16 сентября 2009

Если вы запрограммируете свою службу WCF на прием байтового массива, вы можете добавить туда все, что захотите, например сообщение protobuf. Может быть просто

  [ServiceContract]
    public interface IMessageService{
        [OperationContract(IsOneWay = true)]
        void SendMessage(byte[] msg);
    }

  [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
   public class MessageService: IMessageService{

        public void SendMessage(byte[] msg) {
          //decode the protobuf msg and deal with it.
        }

    }

Настройте конечную точку WCF как SOAP, а затем поговорите с ней из Ява должна быть прямо вперед. Wether WCF / Soap был бы излишним, потому что это другой вопрос, iirc protobuf поставляется с собственной структурой для простого RPC.

0 голосов
/ 16 сентября 2009

Я никогда не использовал Protobuf-Net, но взаимодействие было целым.

независимость от платформы - переносимость между различными архитектурами программирования

...