私は MSF4J を初めて使用し、POST を介して大きな XML データを受け入れる REST API を作成する必要があります。メソッドを使用
request.getMessegeBody()
してデータを取得しています。現在は廃止されていることがわかりましたが、新しいバージョンが見つからなかったので、とにかく使用することにしました。
問題は、初めてマイクロサービスにデータを送信するときに、データ全体が取得されないことです。後続のすべてのリクエストは、最初のリクエストを除く完全なメッセージ本文を取得します。
ESB を介してリクエストを渡そうとすると、ESB は本文全体を受け取りますが、エンドポイントに到達すると切り捨てられます。
また、さまざまな残りのクライアントからリクエストを送信しようとしましたが、初めて不完全なメッセージ本文を常に取得します
@POST
@Consumes({ "application/xml", "application/json", "text/xml" })
@Path("test/")
public Response getReqNotification(@Context Request request) throws Exception {
Response.ResponseBuilder respBuilder =
Response.status(Response.Status.OK).entity(request);
ByteBuf b = request.getMessageBody();
byte[] bb = new byte[b.readableBytes()];
b.duplicate().readBytes(bb);
System.out.println(new String(bb));
return respBuilder.build();
}
リクエストを送信するたびに完全なメッセージ (約 2000 バイトの長さ) を出力することを期待していますが、マイクロサービスを最初に実行したときは約 800 バイトしか得られません。
ここで助けが得られることを願っています。他の場所で試してみましたが、wso2 にはドキュメントがあまりありません (⌣_⌣”)