Zugreifen auf einen WCF-Dienst mit Java
-
07-07-2019 - |
Frage
Ich entwickle eine Web-Service WCF, das ich einen Client verwenden, geschrieben in Java zugreifen möchten. Ich werde die Nachrichten mit Protocol Buffers (mit Marc GRA protobuf-net kodieren zu sein exact).
Ist das möglich zu achive oder muss der Client in .NET als auch geschrieben? Ich weiß, dass mit Protocol Buffers serialisierten Daten binär interopable sind, aber ich weiß nicht, ob WCF spezielle plattformspezifische Meta-Daten auf den codierten Protokoll-Nachrichten erstellt.
ist mir egal, wenn die WCF-Service RESTful ist, SOAP-basierte oder was auch immer andere Formen WCF-Unterstützung, ich möchte nur die eigentliche Nutzlast codiert werden PB verwendet wird. Ist dies möglich, und wenn ja, würde ich ein kurzes Beispiel sehr zu schätzen wissen.
Lösung
Wenn Sie Ihren WCF-Dienst programmieren ein Byte-Array zu nehmen, können Sie stopfen, was du da drin wollen, wie ein protobuf so einfach sein message.Could wie
[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.
}
}
Konfigurieren des WCF-Endpunkt als SOAP, dann, dass das Sprechen von Java sollte gerade foreward sein. Wether WCF / Soap wäre zu viel des Guten für diese andere Sache ist, iirc protobuf kommt mit einem eigenen Framework für die einfache RPC.
Andere Tipps
Ich habe noch nie protobuf-net aber Interop war der springende Punkt.
verwendetplattformunabhängig - portabel zwischen verschiedenen Programmier Architekturen