2009-09-16 13 views
0

Je développe un service web en utilisant WCF, auquel je veux accéder en utilisant un client écrit en Java. Je vais coder les messages en utilisant les tampons de protocole (avec protobuf-net de Marc Gravell pour être exact).Accéder à un service WCF en Java

Est-ce possible ou est-ce que le client doit être écrit en .NET? Je sais que les données sérialisées avec Protocol Buffers sont interopérables binaires mais je ne sais pas si WCF ajoute des méta-données spécifiques à la plate-forme en plus des messages de protocole codés. Je ne me soucie pas si le service WCF est RESTful, SOAP-based ou tout autre forme WCF-support, je veux juste que la charge utile réelle soit encodée en utilisant PB. Est-ce possible et si c'est le cas, j'apprécierais beaucoup un bref exemple.

Répondre

1

Si vous programmez votre service WCF pour prendre un tableau d'octets, vous pouvez farcir tout ce que vous voulez là-dedans, comme un protobuf message.Could être aussi simple comme

[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. 
     } 

    } 

Configurer le point de terminaison WCF comme SOAP, puis parler que de Java doit être droit foreward. Que la WCF/Soap soit trop lourde car c'est une autre affaire, iirc protobuf vient avec son propre framework pour RPC simple.

+0

Merci, c'est une option. Je préférerais cependant que je puisse le séparer en plusieurs méthodes, sinon je perdrais le point d'utiliser la WCF. – Yrlec

-1

Je n'ai jamais utilisé protobuf-net mais interop était le point entier.

plate-forme indépendante - portable entre les différentes architectures de programmation

Questions connexes