2009-09-16 41 views
0

我正在开发一个使用WCF的Web服务,我想用Java编写的客户端访问它。我将使用协议缓冲区对消息进行编码(准确地说,与Marc Gravell的protobuf-net)。使用Java访问WCF服务

这是可能存在或必须在.NET中编写客户端?我知道使用协议缓冲区序列化的数据是二进制可互操作的,但我不知道WCF是否在编码的协议消息之上添加了任何平台特定的元数据。

我不在乎WCF服务是RESTful,基于SOAP还是WCF支持的其他任何形式,我只是希望使用PB编码实际有效负载。这是可能的,如果是这样,我会非常感激一个简单的例子。

回答

1

如果你计划你的WCF服务取一个字节数组,你可以任何东西你想在那里,像一个protobuf的message.Could是简单便携之间作为

[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,然后交谈,从 Java的应该是直的foreward。对于这个问题,WCF/Soap会有些过分,iirc protobuf带有自己的简单RPC框架。

+0

谢谢,这是一个选项。我更喜欢,但如果我真的可以将它分成几种方法,其他方面我会失去使用WCF的观点。 – Yrlec

-1

我从来没有使用protobuf网,但interop是整点。

与平台无关的 - 不同的编程架构