Javaを使用してWCFサービスにアクセスする
-
07-07-2019 - |
質問
WCFを使用してWebサービスを開発していますが、Javaで記述されたクライアントを使用してアクセスしたいです。プロトコルバッファーを使用してメッセージをエンコードします(Marc Gravellの protobuf-net で正確)。
これを実現することは可能ですか、またはクライアントも.NETで作成する必要がありますか?プロトコルバッファーでシリアル化されたデータはバイナリ相互運用可能であることは知っていますが、WCFがエンコードされたプロトコルメッセージの上にプラットフォーム固有のメタデータを追加するかどうかはわかりません。
WCFサービスがRESTfulであるか、SOAPベースであるか、その他のWCFサポート形式であるかどうかは気にしません。実際のペイロードをPBを使用してエンコードするだけです。これは可能ですか。可能であれば、簡単な例をいただければ幸いです。
解決
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として構成し、それから Javaはまっすぐ進むべきです。 WCF / Soapが過剰なものであることは別の問題です。iircprotobufには、単純なRPC用の独自のフレームワークが付属しています。
他のヒント
protobuf-netを使用したことはありませんが、相互運用がポイントでした。
プラットフォームに依存しない-異なるプログラミングアーキテクチャ間で移植可能
所属していません StackOverflow